0

我正在编写一个代码,要求一次输入(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 编程的初学者,我认为我做得不对,但我不确定。任何帮助/提示?

4

3 回答 3

0
#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;
}
于 2013-06-14T05:01:26.307 回答
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"));
    }
于 2013-06-14T05:02:02.200 回答
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 的语法,但我认为这行得通

于 2013-06-14T05:06:04.813 回答