从键盘输入20个实数,分别计算并输出:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数和负数的个数。

从键盘输入20个实数,分别计算并输出:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数和负数的个数。
改了好几遍了还是错的,哭辽,求解决办法感谢感谢

img

img

#include <stdio.h>
#include <math.h>

int main()
{
    int i, m = 0, n = 0;
    double a[20], b = 0, c = 0, d = 0;
    printf("请输入20个实数:\n");
    for (i=0; i<20; i++)
    {
        scanf("%lf", &a[i]);
        if (a[i] > 0)
        {
            m++;
            c += a[i];
        }
        if (a[i] < 0)
        {
            n++;
            d += a[i];
        }
        b += fabs(a[i]);
    }
    printf("所有正数之和:%lf\n", c);
    printf("所有负数之和:%lf\n", d);
    printf("所有数的绝对值之和:%lf\n", b);
    printf("正数个数:%d\n", m);
    printf("负数个数:%d", n);
}

还有,你有处理逗号吗?突然就输入的时候以逗号隔开??

让你求绝对值的和,你却算的是fabs(i),i只是序号啊,a[i]才是值啊。b = b+fabs(a[i]);
后面错误都是一个原因,是 c = c+a[i],d = d + a[i]