我正在编写一个代码,要求一次输入(scanf)一个正数,当输入一个负数时,将显示所有数字的平均值。
到目前为止,我有:
`
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&d);
if(a<0)
printf("%d\t",a);
else if (b<0)
printf("%d\t",a);
else if (d<0)
printf("%d\t",(a+b)/2);
我只是 atm 编程的初学者,我认为我做得不对,但我不确定。任何帮助/提示?
#include <stdio.h>
int main()
{
int sum = 0;
int counter = 0;
int a = 0;
do {
scanf("%d", &a);
if (a < 0)
if (counter != 0)
printf("%f", (float)sum/counter);
else
printf("%s", "No numbers entered.");
else
sum += a;
counter++;
} while (a >= 0);
return 0;
}
Run it and see if this is what you are looking for:
#include <stdio.h>
main()
{
int n,sum=0,i=0;
while(1)
{
scanf("%d",&n);
if(n<0)
break;
sum+=n;
i++;
}
(i!=0)?(printf("%f",(float)sum/i)):(printf("0"));
}
使用循环,您可以:
double input, sum = 0.0;
int count = 0;
do
{
scanf("%d\t",&input)
count++;
sum += input;
if(input < 0)
printf("%d", &(sum/count))
} while (input >= 0);
我不太确定 printf 的语法,但我认为这行得通