我是编程新手,目前正在使用Visual Studio 2013进行C编程,问题是当我运行代码时,它询问我要选择哪个,所以我选择数字1,然后询问我``安娜·科克斯(Anna korkeus)''我的身高),然后我写1,它一直为我提供永恒的东西,但是我想要的是,当我写1时,它必须打印此='printf(“ Pienin mitta放在5 cm ja suurin 50cm上,anna uudelleen \ n”) ;
然后,由于我给出的数字有误,因此必须再次问我同样的问题“安娜·科克”(Anna korkeus),直到我给出5> h ||之间的正确数字为止。 h> 50

预先谢谢您,对不起英语不是我的母语

#include < stdio.h>
#define   PII   3.14
void main(void)
{
    char rivi[128]; /* sy”tetty rivi luetaan t„h„n */
    /* mahdollinen ylim„„r„inen sy”te */
    float pii;
    float h;
    float r;
    float v;
    float kartio;
    float luku;
    int  number;

    system("cls");

    printf("1 ympyr„lieri” \n");
    printf("2 ympyr„kartio \n");
    printf("Lasketaan tilavuutta, valitse tuotteista: \n");


    scanf_s("%d", &number);
    if ( number == 1){
        printf("Valitsit ympyr„lieri”n \n");

    luku=printf("Anna korkeus: \n");
    scanf_s("%f", &h);

    while (5 > h || h >  50){
        printf("Pienin mitta on 5 cm ja suurin 50cm, anna uudelleen \n");
        printf("Anna korkeus: \n");
    }


    printf("Anna sade: \n");
    scanf_s("%f", &r);
    if (5 > r || r >  50){
        printf("Pienin mitta on 5 cm ja suurin 50cm, anna uudelleen \n");
    }

    v = PII*r*r*h;
    printf("Ympyralierion tilavuus on: %f\n", v);
}
        else if (number == 2){

            printf("Valitsit ympyr„kartion \n");

    printf("Anna korkeus: ");
    scanf_s("%f", &h);
    if (5 > h || h >  50){
        printf("Pienin mitta on 5 cm ja suurin 50cm, anna uudelleen \n");
    }
    printf("Anna sade: ");
    scanf_s("%f", &r);
    if (5 > r || r >  50){
        printf("Pienin mitta on 5 cm ja suurin 50cm, anna uudelleen \n");
    }
    v = (PII*r*r*h)/3;
    printf("Ympyrakartion tilavuus on: %f\n", v);

    }
}

最佳答案

以这种方式更改代码:

do {
  printf("Anna korkeus: \n");
  scanf_s("%f", &h);

  if (h < 5 || h >  50) {
    printf("Pienin mitta on 5 cm ja suurin 50cm, anna uudelleen \n");
  }
}
while(h < 5 || h >  50);


在下一步中,您可能考虑将h的冗余检查移至根据输入返回true或false的函数。

关于c - 在C语言中的while循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32825761/

10-15 07:44