在C程序中实现avg
但是我不希望出现这样的提示:您希望用户能够向您的应用程序发出信号,表明他们已经完成了元素的输入。因此,您可以从在C程序中实现avg,c,C,但是我不希望出现这样的提示:您希望用户能够向您的应用程序发出信号,表明他们已经完成了元素的输入。因此,您可以从n=0开始,然后在每次用户提供新元素时递增它,并在用户执行您可以检测到的“操作”时退出循环 首先,假设用户通过在Windows上按Ctrl-Z或在Unix上按Ctrl-D来关闭输入。输入将因EOF而失败-scanf()将不再返回1。因此,您可以检查以下内容: printf("\nPlease Enter How many Number you want?\n");
n=0
开始,然后在每次用户提供新元素时递增它,并在用户执行您可以检测到的“操作”时退出循环
首先,假设用户通过在Windows上按Ctrl-Z或在Unix上按Ctrl-D来关闭输入。输入将因EOF而失败-scanf()
将不再返回1
。因此,您可以检查以下内容:
printf("\nPlease Enter How many Number you want?\n");
scanf("%d",&n);
作为一名学习者,我建议您考虑伪代码而不是实际代码 上面的答案真的很好。我只想补充几点: 作为一名程序员,你必须教硬件你想要它做什么。思考:
0
如果你以前考虑过这些事情并提出问题,你会学得更好。社区是来帮助你的。“我不想那样。”。那么您希望
n
从哪里来?目前,从未设置n
。在使用它之前,必须将其设置为某个值:while(i您从未设置n
,即使您解决了这个问题,您仍然在进行整数除法,这显然是您不希望的(因为average
声明为double
)。如果不在while之前输入n值,则不会对while循环进行限制。或者从另一个意义上说,您没有告诉程序要取多少个数字或何时停止循环。因此,您需要在while循环本身之前取n值。
printf("\nPlease Enter How many Number you want?\n");
scanf("%d",&n);
#include <stdio.h>
int main(int argc, char** argv)
{
int n = 0;
int sum = 0;
printf("\nPlease Enter the elements one by one. ");
#ifdef _WIN32
printf("Press Ctrl-Z to finish.\n");
#else
printf("Press Ctrl-D to finish.\n");
#endif
for (;;)
{
int number;
int result = scanf("%d", &number);
if (result == 1) break;
sum = sum + number;
n ++;
}
double average = (double)sum / n;
printf("\nSum of %d number(s) = %d\n",n, sum);
printf("Average of %d number(s) = %.2f\n",n, average);
return 0;
}
#include <stdio.h>
void skip_input_till_next_line(void)
{
for (;;) {
char c;
if (scanf("%c", &c) != 1) break;
if (c == '\n') break;
}
}
int main(int argc, char** argv)
{
int n = 0;
int sum = 0;
printf("\nPlease Enter the elements one by one. ");
#ifdef _WIN32
printf("Press Ctrl-Z to finish.\n");
#else
printf("Press Ctrl-D to finish.\n");
#endif
for (;;)
{
int number;
int result = scanf(" %d", &number);
if (result == EOF) break;
if (result != 1) {
// We've got something that is not a number
fprintf(stderr, "Invalid input. Please try again.\n");
skip_input_till_next_line();
continue;
}
sum = sum + number;
n ++;
}
double average = (double)sum / n;
printf("\nSum of %d number(s) = %d\n",n, sum);
printf("Average of %d number(s) = %.2f\n",n, average);
return 0;
}