while循环使用c语言

时间:2015-09-28 14:41:10

标签: c loops while-loop

我是编程新手,我目前正在使用visual studio 2013进行c编程,问题是当我运行代码时,它询问我要选择哪个,所以我选择1号,然后它问我' Anna korkeus'(意思是给我身高)然后我写1,它一直给我一些永恒的东西,但我想要的是,当我写1时它必须打印这个=' printf(" Pienin mitta on 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);

    }
}

1 个答案:

答案 0 :(得分:2)

以这种方式更改您的代码:

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的函数。