我是编程新手,目前正在使用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/