如何计算和提取stdin中的一些元素?
例如,len()在Python中很容易使用,但在C中不易使用?
我试图计算平均值,当用户输入例如:
1 3 5 7 8 10 11-1
我试过以下方法:
while (user_input != -1)
{
total += user_input;
scanf ("%d", &user_input);
//cannot work
average = total / ...
}
printf("Average = %f\n", average);
最佳答案
你要做你想做的事就得有个柜台它只是int counter = 0;
在循环中:counter++
int counter = 0;
while (user_input != -1)
{
total += user_input;
counter ++;
scanf ("%d", &user_input);
}
average = total / counter;
printf("Average = %f\n", average);
显然,您必须检查
scanf()
是否至少返回了1---编辑---
以下程序(对应于上一个程序)有效,并按要求工作不了解
scanf()
工作原理的人应该置身事外:#include <stdio.h>
int main(int argc, char *argv[])
{
int total = 0;
float average = 0.0f;
int userinput = 0;
int counter = -1;
while(userinput != -1){
counter ++;
if(scanf("%d",&userinput) == 1 && userinput != -1){
total += userinput;
}
}
average = ((float)total/(float)counter);
printf("Average = %f", average);
return 0;
}
输入:
10 20 30 40 50 60 -1
输出:
Average = 35
关于c - 如何从stdin中读取一行数字并计算其平均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14424219/