楼上的程序如果能稍微改一下,时间复杂度就更好了。
#include
#define N 10
int main()
{int a[N], i,s1=0,s2=0;
for(i=0;i
for(i=0;i
s1+=a[i];
else
s2+=a[i];
}
printf("所有正数的和:%d\n",s1);
printf("所有负数的和:%d\n",s2);
printf("总和:%d\n",s1+s2);
return 0;
}
注意,这里把0当作负数来处理。当然你也可以稍微改一下程序,把零单独处理。
再简化一下
#include
#define N 10
void main()
{int a[N], i,s1=0,s2=0;
for(i=0;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);
}
我编了一个运行正确
修改了一下
#include
#define N 10
void main()
{int a[N], i,s1=0,s2=0;
for(i=0;i
for(i=0;i
s1+=a[i];
if(a[i]<0)
s2+=a[i];}
printf("所有正数的和:%d\n",s1);
printf("所有负数的和:%d\n",s2);
printf("总和:%d\n",s1+s2);
}
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);
}