c语言求解,,,任意输入10个数,分别计算出其中正数和负数的和。。。我的程序错在哪里求解。感谢

#include<stdio.h>main(){ int a[10]; int i,zheng=0,fu=0; scanf("%d",&a[10]); for(i=1;i<=10;i++) if(a[i]<0) zheng=zheng+a[i]; else fu=fu+a[i]; printf("fu=%d,zhen=%d",fu,zhen); getch(); }
2026年09月17日 03:29
有4个网友回答
网友(1):

#include

main() /*void main() 才是正确的*/
{
int a[10];
int i,zheng=0,fu=0;
scanf("%d",&a[10]); /*输入时变量应是&a[i],这才是变量,还有数组的变量是从0开始的*/
for(i=1;i<=10;i++)
if(a[i]<0) /*这里连正负都不分了啊*/
zheng=zheng+a[i];
else
fu=fu+a[i];
printf("fu=%d,zhen=%d",fu,zhen);
getch();
}
错误还是很多的,应该多看看别人写的程序,然后看完后自己一定要去写一遍,自己写的永远比你只看要有效果的多。下面是一个可行的程序,你可以尝试写过一个别的程序,可以把它做参考!!写程序还是要靠自己想的。。

#include

void main()
{
int a[10],i,zheng=0,fu=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(a[i]>0)
zheng=zheng+a[i];
else
fu=fu+a[i];
printf("fu=%d,zhen=%d",fu,zheng);
}

网友(2):

for(i=1;i<=10;i++)
if(a[i]<0)
zheng=zheng+a[i];
else
fu=fu+a[i];
printf("fu=%d,zhen=%d",fu,zhen);

这部分有误,首先是判断不对。其次,数组溢出,数组定义是从a[0]开始的,只定义了10个变量,a[10]超出范围了。应改为:
for(i=0;i<10;i++)
if(a[i]>0)
zheng=zheng+a[i];
else
fu=fu+a[i];
printf("fu=%d,zhen=%d",fu,zheng);

网友(3):

说实话你这个程序问题很大,scanf("%d",&a[10]);这个是输入值吗,a[10],最大的下标是9,不存在a[10],再说你在数组中都没有输入数据,下面的错误也很多,自己看看书吧,估计你是刚学c语言的,这是我修改了一下的程序,希望对你有帮助
#include
void main()
{
int a[10];
int i,zheng=0,fu=0;
printf("请输入10个整数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]<0)
zheng+=1;
else
fu+=1;
}
printf("fu=%d,zheng=%d",fu,zheng);
printf("\n");
}

网友(4):

循环错了,for(i=0;i<10;i++)
一般数组是从a[0]j开始的。