Autor
|
Tema: Ayuda con codigo de preguntas y respuestas (Leído 2,319 veces)
|
carlos112233
Desconectado
Mensajes: 1
|
Hola, soy nuevo en la programacion y me gustaria si me pueden aportar con un programa que he realizado. Este programa realiza una pregunta en ingles y si el usuario responde correctamente a traves del teclado sigue con la siguiente pregunta, si no, espera a que responda en forma correcta. Agradeceria si alguien me puede apoyar con otra forma mas elegante o menos bruta para realizar el programa. El codigo es el siguiente: #include<stdio.h> #include<string.h> #include<stdlib.h> main(){ char c1[15]="hi", c2[15]; etiqueta_1: int n; if(n==0){ int l; char c3[30], c4[30]="Iam good.How are you?"; if(n==0){ int m; char c5[30], c6[30]="A little.Are you American?"; printf("Good.Do you speak English?\n"); if(n==0){ int o; char c7[30], c8[30]="Where are you from?"; } } } if(n>0){ printf("Vuelva a intentarlo\n"); goto etiqueta_1; } else{ printf("Vuelva a intentarlo\n"); goto etiqueta_1; } return 0; }
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 24 Septiembre 2017, 23:21 pm por engel lex »
|
En línea
|
|
|
|
Tucho
Desconectado
Mensajes: 5
|
Lee los comientarios del codigo: #include<stdio.h> #include<string.h> #include<stdlib.h> main(){ //Pongamos el int, no seamos tan cabezas char c1[15]="hi", c2[15]; etiqueta_1: scanf("%s",&c2 [0]); //poner &c2[0] es lo mismo que poner c2, Además, yo utiilizari scanf("%15s",c2) para que no se pueda poner mas que el largo del string. //Si no se puede usar: fgets(c2,15,stdin) int n; n = strcmp(c1 ,c2 ); //Esto podes ponerlo directamente cono condicion del if.. if(n==0){ // if(!strcmp(c1,c2)) int l; char c3[30], c4[30]="Iam good.How are you?"; if(n==0){ //Aca es: if(l==0) int m; char c5[30], c6[30]="A little. Are you American?"; printf("Good.Do you speak English?\n"); if(n==0){ //Aca es: if(m==0) int o; char c7[30], c8[30]="Where are you from?"; o = strcmp(c7 ,c8 ); //si pensas hacer la conversacion muy larga, tendrias que ver como hacer mas escalable el program, y no tener que escribir tanto(Ver al final). //Si queres verificar que el usuario responde bien en todos los casos tendrias que ver que pasa cuando m!=0 y l!=0, por que esto hace el goto solo cuando falla el primero de todos. Tendrias que usar el mismo n en todos lados de ultima.. } } } if(n>0){ //Este if(n>0) y lo que hay en el else, pueden estar juntos, directamente usar el else.. printf("Vuelva a intentarlo\n"); goto etiqueta_1; } else{ printf("Vuelva a intentarlo\n"); goto etiqueta_1; } system("pause"); //Ojo con las llamadas a system.. return 0; } //Yo personalmente no me gusta el "goto", yo haria algo como: do{ printf("Estoy aca y voy a entrar aca hasta que le acertes a la frase..") en lugar de lo que haces vos: lala: goto lala: //Por otro lado, si queres hacer que puedas agregar tantas frases como quieras, sin tener que cambiar tanto codigo, podrias hace algo como: #include <stdio.h> #include <string.h> #define NUM 4 int main(){ char *respuestas[NUM]={"hi", "Iam good. How are you?", "A little. Are you American?", "Where are you from?"}; char *preguntas[NUM] = {"Hello\n", "How are you?\n", "Good. Do you speak English?\n", "yes\n"}; int i; char aux[30] ={0}; for(i=0; i<NUM; i++){ do{ int j; for(j=0; j<strlen(aux); ++j) aux[j]=0; }while(strcmp(aux ,respuestas [i ])); } getchar(); //Lo mismo que el system("sleep").. }
Ojo que el ultimo main no esta ni revisado ni compilado.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[FAQ] Preguntas y respuestas frecuentes.
Software
|
Siuto
|
0
|
28,012
|
11 Diciembre 2005, 04:43 am
por Siuto
|
|
|
preguntas y respuestas
Software
|
pingoroxo
|
2
|
3,786
|
12 Diciembre 2008, 01:48 am
por Axus
|
|
|
preguntas y respuestas c++
« 1 2 »
Programación C/C++
|
peterfly
|
13
|
18,473
|
2 Agosto 2011, 18:42 pm
por peterfly
|
|
|
Preguntas y respuestas. Yo pregunto, tú respondes!
Foro Libre
|
free-articles
|
0
|
1,781
|
10 Septiembre 2012, 21:07 pm
por free-articles
|
|
|
[RESUELTO] Un programa de preguntas y respuestas formuladas por ti, ayuda
Programación C/C++
|
zayzed
|
1
|
2,003
|
30 Abril 2017, 22:38 pm
por MAFUS
|
|