我真的被困在这一直试图解决它已经很长一段时间了。 我必须写一个程序,我应该在1到10之间输入5个数字,然后计算平均值,仅使用WHILE LOOP,但是当数字不符合要求时不必退出。然后,我必须写一个相同代码的变体,但这次你可以输入你想要的所有数字,当输入0时,它必须计算平均值并退出
这是我到目前为止的地方
#include <stdio.h>
int main(void)
{
int n, i = 1;
float add;
float avg;
do
{
printf("enter the number %d:\n", i++);
scanf("%d", &n);
add = add + n;
} while(n > 0 && n < 11);
avg= (add / 5);
printf("%.1f", avg);
return 0;
}
输入5后,它会继续询问数字。反正平均值是不对的
答案 0 :(得分:2)
首先,您使用n
作为while
条件变量,但也作为扫描输入的变量。例如,如果我通过扫描20启动程序,则while
循环将在第一次交互时退出。请改用i
变量,并在每次循环执行时增加它。
do{
...
}while(i <= 5);
其次,如果你只想要1到10之间的数字,那么你应该为它写一个条件。例如:
printf("enter the number %d:\n", i); //do not increment it here!
scanf("%d",&n); //assuming "n" as your variable to scan
if(n > 0 && n < 11){
add += n;
i++; //increment it here instead!
}
第三,初始化变量以便不获得捶打值
float add = 0;
float avg = 0;
int i = 1;
最后,分配你的结果(不是强制性的,但是因为你使用它我会保留它):
avg = add/5.0f
并显示:
printf("%.1f", avg);