我是编程新手,我目前正在使用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);
}
}
答案 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的函数。