怀疑学校代码,需要一些指导

时间:2018-05-27 03:18:44

标签: c

如果用户没有输入三个选项中的一个,如何在此代码中添加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!");
}

1 个答案:

答案 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!");
    }
}