#include<stdio.h>
void main()
{
long int i,a[10],zhengshu=0,fushu=0,m=0,n=0;
for(i=1;i<=10;i++)
scanf("%ld",&a[i]);
for(i=1;i<=10;i++)
if(a[i]>0)
{
zhengshu=zhengshu+a[i];
m++;
}else
{
fushu=fushu+a[i];
n++;
}
printf("zhengshu=%ld,geshu=%ld,fushu=%ld\n,geshu=%ld\n",zhengshu,m,fushu,n);
}
编写时没错,但执行时运算结果错误。。输入10个用空格间断的数据时,敲回车键没反应,无法运行。。
数组越界了,C语言中定义 long a[10], 其元素依次为 a[0], a[1], a[2]... a[9]
所以循环的时候,一般这样
for (i = 0; i < 10; i ++)另外,在做你这道题时,没有必要做两次循环,一个循环就可以了呀
scanf到了一个数之后,立即判断其正负性,然后做相应的累加即可
所以,连数组都没必要使用,哈哈。
追问我是新手,能不能详细纠正一下。。
追答#include <stdio.h>