C语言高手帮忙看看哪错了

来源:百度知道 编辑:UC知道 时间:2024/06/18 01:13:42
任意输入10个数,计算所有正数的和、负数的和以及10个数的和
#include <stdio.h>
main()
{
int a,b,c,sum1=0,sum2=0,sum3=0,i;
for(i=0;i<10;i++)
{scanf("%d",&a);
if(a<=0) b=a;
else c=a;
sum1+=c;
sum2+=b;
sum3+=a;
}
printf("%d\n%d\n%d\n",sum1,sum2,sum3);
}
比如说我输入,1 2 3 4 5 6 7 8 9 10
结果是55 4660 55

main()的前面要加上void ; a b c 要在每次循环里都要初始化为0。

void main()
{
int a,b,c,sum1=0,sum2=0,sum3=0,i;
for(i=0;i<10;i++)
{
a = 0;
b = 0;
c = 0;
scanf("%d",&a);
if(a<=0) b=a;
else c=a;
sum1+=c;
sum2+=b;
sum3+=a;
}
printf("%d\n%d\n%d\n",sum1,sum2,sum3);
}

if(a<=0){ b=a; sum2+=b; }
else {c=a; sum1+=c; }
sum3+=a;

/*按照程序顺序执行,你每次都要做一次sum1+=c; sum2+=b; sum3+=a; 所以不管是正数还是负数sum1和sum2的值都要增加,程序应该改成如下*/
#include <stdio.h>
main()
{
int a,b,c,sum1=0,sum2=0,sum3=0,i;
for(i=0;i<10;i++)
{scanf("%d",&a);
if(a<=0)
{
b=a;
sum2+=b;
}
else
{
c=a;
sum1+=c;
}

sum3+=a;
}
printf("%d\n%d\n%d\n",sum1,sum2,sum3);
}