用C语言编写程序,任意输入10个数,计算所有正数的和、负数的和以及这10个数的总和

2024-11-26 08:25:07
推荐回答(4个)
回答1:

楼上的程序如果能稍微改一下,时间复杂度就更好了。
#include
#define N 10
int main()
{int a[N], i,s1=0,s2=0;
for(i=0;iscanf("%d",&a[i]);

for(i=0;i{if(a[i]>0)
s1+=a[i];
else
s2+=a[i];
}
printf("所有正数的和:%d\n",s1);
printf("所有负数的和:%d\n",s2);

printf("总和:%d\n",s1+s2);
return 0;
}

注意,这里把0当作负数来处理。当然你也可以稍微改一下程序,把零单独处理。

回答2:

再简化一下
#include
#define N 10
void main()
{int a[N], i,s1=0,s2=0;
for(i=0;iscanf("%d",&a[i]);

for(i=0;i{
if(a[i]>0)
s1+=a[i];
else
s2+=a[i];
}
printf("所有正数的和:%d\n",s1);
printf("所有负数的和:%d\n",s2);
printf("总和:%d\n",s1+s2);
}

回答3:

我编了一个运行正确
修改了一下
#include
#define N 10
void main()
{int a[N], i,s1=0,s2=0;
for(i=0;iscanf("%d",&a[i]);

for(i=0;i{if(a[i]>0)
s1+=a[i];
if(a[i]<0)
s2+=a[i];}
printf("所有正数的和:%d\n",s1);
printf("所有负数的和:%d\n",s2);
printf("总和:%d\n",s1+s2);
}

回答4:

vc6测试通过,你试试
#include
main()
{int a[10],sum1=0,sum2=0,i=0;
do{printf("Input a[%d] number:",i);
scanf("%d",&a[i]); a[i]>0?sum1+=a[i]:sum2+=a[i];
}while(++i<10);
printf("sum+ =%d\n",sum1);
printf("sum- =%d\n",sum2);
printf("sumall=%d\n",sum1+sum2);
}