我只是想让这个程序取1到9之间的数字并计算半径并显示它。这个程序应该循环,但我得到的只是“感谢您使用该软件!”打印功能,它根本没有经过循环,我似乎无法理解为什么。
#include <stdio.h>
int main(void){
float i,r, V;
for(i=0; i <= 4; i++){
while ( r != 0) {
printf("Enter a radius between 1 and 9: \n");
scanf ("%f", &r);
V= (3.141592)*r*r*10;
if (r>=1 && r<=9){
printf("The cylinder volume is %f\n", V);
}
else if (r > 9 || r < 0){
printf ("The input is out of the acceptable range. Select an integer less than $/n");
}
printf("Thank you for using the software!\n");
}
return 0;
}
答案 0 :(得分:6)
在进入r
循环之前,您永远初始化 while
,因此这是未定义的行为。
此外,您希望将int
用于等于运算符,即==
或!=
。在您的情况下,您可能希望包含r
可以在其中的“错误”。
答案 1 :(得分:1)
要确保循环至少执行一次,您可以使用
do {
// your code
} while ( r != 0);
答案 2 :(得分:1)
在使用之前你没有初始化r。 你必须初始化它或使用i迭代循环。
INITIALIZE r here before using
for (i = 0; i <= 4; i++)
{
while (r != 0)
{
//code
}
}
答案 3 :(得分:0)
你最好使用do while loop
按照自己的方式去做。
for(i=0; i <= 4; i++){
do {
printf("Enter a radius between 1 and 9: \n");
scanf ("%f", &r);
V= (3.141592)*r*r*10;
if (r>=1 && r<=9){
printf("The cylinder volume is %f\n", V);
}
else if (r > 9 || r < 0){
printf ("The input is out of the acceptable range. Select an integer less than $/n");
}while ( r != 0)
printf("Thank you for using the software!\n");
}
我没有尝试过这个我自己。这可能会起作用。如果它有用的话就行了。