C语言。求大神解从键盘上任意输入n个数(以0结束),统计正负数的个数;并分别计算正数和负数的平均值。

求好心的大神帮助啊。。。

#include <stdio.h>;

int main(int argc, char **argv) {
    int m, zss = 0, fss = 0, zs = 0, fs = 0;

    printf("请输入数字,输入0表示输入结束:\n");
    do {
        scanf("%d", &m);
        if (m > 0) {
            zss = zss + m;
            zs++;
        } else if (m < 0) {
            fss = fss + m;
            fs++;
        }
    } while (m != 0);
    printf("\n正数个数:%d\n正数平均数:%d\n负数个数:%d\n负数平均数:%d\n", zs, zss / zs, fs,
            fss / fs); //打印

    return 0;
}

调试ok

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-07
#include <stdio.h>
#define N 100

int main()
{
int a[N], i, j, count1, count2;

float ave1, ave2;

count1= count2 = ave1 = ave2 = 0;

for ( i = 0; ; i++ )
{
scanf("%d", &a[i]);

if ( 0 == a[i] ) break;
}
for ( j = 0; j < i; j++ )
{
if ( a[j] < 0 )
{
count1++; ave1 += a[j];
}
else
{
count2++; ave2 += a[j];
}
}

printf("正数:%d 正数平均值:%f\n负数:%d 负数平均值:%f\n", count2, ave2/count2, count1, ave1/count1 );

return 0;
}本回答被提问者采纳
第2个回答  2014-04-02
#include<stdio.h>
main()
{
int i=0,j=0;
float a,ave1,ave2,sum1=0,sum2=0;
for(scanf("%f",&a);a;scanf("%f",&a))
{
if(a>0)
{
i++;
sum1+=a;
}
else
{
j++;
sum2+=a;
}
}
if(i==0) ave1=0;
else ave1=sum1/i;
if(j==0) ave2=0;
else ave2=sum2/j;
printf("正数的个数与平均值为:%d,%f\n",i,ave1);
printf("负数的个数与平均值为:%d,%f\n",j,ave2);
}
如满意望采纳~谢谢!
第3个回答  推荐于2018-05-21
#include <stdio.h>
int main()
{
int num,pCount = 0,rCount = 0;
float result = 0.0;
printf("请输入一个非0的数:");
scanf("%d",&num);
while(num)
{
if(num < 0)
rCount++;
else
pCount++;
result += num;
printf("请输入一个非0的数:");
scanf("%d",&num);
}
result = result/(pCount + rCount);
printf("结果是:%f",result);
}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网