如果用户没有输入三个选项中的一个,如何在此代码中添加while或jmp(程序集)?
char tipo[20];
char Equ[] = "equilatero";
char Ret[] = "retangulo";
char Iso[] = "isoceles";
int l,b,h;
printf("digite o tipo de triangulo desejado:\n equilatero ou retangulo/isoceles\n");
scanf("%19s", tipo);
if (strcmp (tipo,Equ) == 0){
printf("digite o valor do lado \n");
scanf("%d", &l);
TriaEqui(l);
}else if (strcmp (tipo,Ret) == 0){
printf("digite a base");
scanf("%d",&b);
printf("digite a altura");
scanf("%d",&h);
TriaIsoc(b,h);
}else if(strcmp (tipo,Iso) == 0){
printf("digite a base");
scanf("%d",&b);
printf("digite a altura");
scanf("%d",&h);
TriaIsoc(b,h);
}else {
printf("escolha uma das 3 opcoes!");
}
答案 0 :(得分:1)
我不打算更改你的代码,因为你真正需要做的就是把它包装成一个循环,如果它是必需的选项之一就会脱离循环。
char tipo[20];
char Equ[] = "equilatero";
char Ret[] = "retangulo";
char Iso[] = "isoceles";
int l,b,h;
while (1) {
printf("digite o tipo de triangulo desejado:\n equilatero ou retangulo/isoceles\n");
scanf("%19s", tipo);
if (strcmp (tipo,Equ) == 0){
printf("digite o valor do lado \n");
scanf("%d", &l);
TriaEqui(l);
break;
}else if (strcmp (tipo,Ret) == 0){
printf("digite a base");
scanf("%d",&b);
printf("digite a altura");
scanf("%d",&h);
TriaIsoc(b,h);
break;
}else if(strcmp (tipo,Iso) == 0){
printf("digite a base");
scanf("%d",&b);
printf("digite a altura");
scanf("%d",&h);
TriaIsoc(b,h);
break;
}else {
printf("escolha uma das 3 opcoes!");
}
}