Lee los comientarios del codigo:
Ojo que el ultimo main no esta ni revisado ni compilado.
Código (c) [Seleccionar]
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main(){ //Pongamos el int, no seamos tan cabezas
char c1[15]="hi", c2[15];
printf("hello\n");
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?";
printf("How are you?\n");
scanf("%s",&c3[0]);
l = strcmp(c3,c4);
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");
scanf("%s",&c5[0]);
m = strcmp(c5,c6);
if(n==0){ //Aca es: if(m==0)
int o;
char c7[30], c8[30]="Where are you from?";
printf("yes\n");
scanf("%s",&c7[0]);
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{
scanf("%s", c2);
printf("Estoy aca y voy a entrar aca hasta que le acertes a la frase..")
}while(strcmp(c1,c2));
en lugar de lo que haces vos:
lala:
scanf("%s", c2);
if(strcmp(c1,c2))
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;
printf(preguntas[i]);
scanf("%s", aux);
}while(strcmp(aux,respuestas[i]));
}
getchar(); //Lo mismo que el system("sleep")..
}
Ojo que el ultimo main no esta ni revisado ni compilado.