#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);
}
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);
说实话你这个程序问题很大,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");
}
循环错了,for(i=0;i<10;i++)
一般数组是从a[0]j开始的。