用C语言编写程序:要求输入10个整数,统计正数个数和所有正数和,负数个数和所有负数和,下面哪里出错

用C语言编写程序:要求输入10个整数,统计正数个数和所有正数和,负数个数和所有负数和,下面哪里出错#include<stdio.h>
int main()
{
int a[10];
int i,a,s,b,sum;
a=0,s=0;
b=0,sum=0;
printf("please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",a);
for(i=0;i<10;i++)
{
do
{
s+=a[i];
a++;
}while(a[i]<0);
do
{

sum+=a[i];
b++;
}while(a[i]>0);
}
printf("正数个数为:%d\n所有正数之和为:%d\n负数个数为:%d\n所有负数之和为:\n",a,s,b,sum);
return 0;
}

修改如下:

#include<stdio.h>
int main()
{
int arr[10];
int i,a,s,b,sum; //变量a和数组a[]重名了,这是不允许的,编译报错
a=0,s=0;
b=0,sum=0;
printf("please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&arr[i]);  //你这里错了
for(i=0;i<10;i++)
{
if(arr[i]>0)
{
s+=arr[i];
a++;
}
if(arr[i]<0)
{
sum+=arr[i];
b++;
}
//已经有for循环来遍历数组了,所以不需要额外的循环语句了
}
printf("正数个数为:%d\n所有正数之和为:%d\n负数个数为:%d\n所有负数之和为:%d\n",a,s,b,sum); //少了一个%d
return 0;
}

追问

谢谢你的详细解答,让我收获颇多!

温馨提示:答案为网友推荐,仅供参考
相似回答