从键盘输入10个整数(用数组存放),统计其中正数、负数和零的个数,并在屏幕上输出。

请指教一下 这个编程哪里有问题的!!
#include <stdio.h>
int main (void)
{
int a[10],i,j;
int b=0,c=0,d=0;
printf("请任意输入十个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<10;i++)
{
if(a[i]>0)
b++;
if(a[i]=0)
c++;
if(a[i]<0)
d++;
}
printf("共有%d个正数!共有%d个负数!共有%d个0!",b,d,c);
return 0;
}

#include <stdio.h>
int main (void)
{
    int a[10],i,j;
    int b=0,c=0,d=0;
    printf("请任意输入十个数:");
    for(i=0;i<10;i++)scanf("%d",&a[i]);
    
    for(j=0;j<10;j++)
    {
        if(a[j]>0) b++;
        if(a[j]=0) c++;
        if(a[j]<0) d++;
    }
    printf("共有%d个正数!共有%d个负数!共有%d个0!",b,d,c);
    return 0;
}

//错误在:
 for(j=0;j<10;j++)
    {
        if(a[j]>0) b++;
        if(a[j]=0) c++;
        if(a[j]<0) d++;
    }
    i,j不分,变量使用错误!

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-16
scanf("%d",&a[i]);
错误在这行,数组不能这样输入,有问题。
最好设置一个指针,然后将数组和指针关联本回答被网友采纳
第2个回答  2018-03-16
#include <stdio.h>
int main (void) {
  int a[10],i,j;
  int b=0,c=0,d=0;
  printf("ÇëÈÎÒâÊäÈëÊ®¸öÊý£º");
  for(i=0; i<10; i++)
    scanf("%d",&a[i]);
  for(i=0; i<10; i++) {
    if(a[i]>0)
      b++;
    if(a[i]=0)
      c++;
    if(a[i]<0)
      d++;
  }
  printf("¹²ÓÐ%d¸öÕýÊý£¡¹²ÓÐ%d¸ö¸ºÊý£¡¹²ÓÐ%d¸ö0£¡",b,d,c);
  return 0;
}

循环变量写错了

第3个回答  2015-11-08
“if(a[i]=0)”
写错了
判断是否相等用"=="追问

改过来之后,运行还是没用,运算出不来!

追答

……失算

for(j=0;j0)
b++;
if(a[i]=0)
c++;
if(a[i]<0)
d++;

你仔细看看就会发现,4处本应该写j的地方你写了i

追问

a[i],是赋值的十个数,那个j是需要十次循环吧!

追答

……
for(j = 0; j < 10; i ++){……}
每执行一次循环,i加1,j不变,j什么时候会不满足条件?
不一定要用a[i]来取值,可以用a[j]。
毕竟实际有意义的是a[0]、a[1]……这些,不用拘泥于赋值时用的是哪个变量来表示1、2、3。

第4个回答  2018-03-16
for(j=0;j<10;i++)这里错了,应该是j++,下面全部改成a[j];
相似回答