请计算各类型字符个数

不明白为什么没有输出。
#include
int main() {
  char a[3][80];
  int i,j,d=0,x=0,n=0,k=0,q=0;
  for(i=0;i<3;i++)
  for(j=0;j<80;j++){
  scanf("%c",a[i][j]);}
  scanf("\n");
  for(i=0;i<3;i++){
  for(j=0;j<80;j++)
  if(a[i][j]>='A'&&a[i][j]<='Z')
  d+=1;
  else if(a[i][j]>='a'&&a[i][j]<='z')
  x+=1;
  else if(a[i][j]>='0'&&a[i][j]<='9')
  n+=1;
  else if(a[i][j]=' ')
  k+=1;
  else
  q+=1;}
  printf("upper case:%d",d);
  printf("\n");
  printf("lower case:%d",x);
  printf("\n");
  printf("digit:%d",n);
  printf("\n");
  printf("space:%d",k);
  printf("\n");
  printf("other:%d",q);
  return 0;
}
题目如下

img

1、输入少了取地址符号&
2、scanf("\n")去掉
3、else if(a[i][j]=' ')改为:else if(a[i][j]==' ')
其他问题等

#include<stdio.h>
int main() {
  char a[3][80];
  int i,j,d=0,x=0,n=0,k=0,q=0;
  for(i=0;i<3;i++){
      gets(a[i]); 
  } 
  
  for(i=0;i<3;i++){
      for(j=0;a[i][j]!='\0';j++)
          if(a[i][j]>='A' && a[i][j]<='Z')
              d+=1;
          else if(a[i][j]>='a' && a[i][j]<='z')
              x+=1;
          else if(a[i][j]>='0' && a[i][j]<='9')
              n+=1;
          else if(a[i][j]==' ')
              k+=1;
          else
              q+=1;
  }
  printf("upper case:%d",d);
  printf("\n");
  printf("lower case:%d",x);
  printf("\n");
  printf("digit:%d",n);
  printf("\n");
  printf("space:%d",k);
  printf("\n");
  printf("other:%d",q);
  return 0;
}

代码有多个问题,输入语句要加&符号,scanf("\n")不需要,最大问题是数组长度80,题目你没有给清楚,80应该是最大长度,不是肯定有80个字符。所以应该按照字符串来接收,不能按字符逐个接收的。
另外字符串为何是3个?题目指定的?一定是三行字符串吗???
基本修改如下:把题目详细内容贴出来后可能还需要修改

#include<stdio.h>
int main() {
  char a[80];
  int i,j,d=0,x=0,n=0,k=0,q=0;
  for(i=0;i<3;i++)
  {
    gets(a);
    d=x=n=k=q=0;
    for(a[j] != '\0')
    {
         if(a[j]>='A'&&a[j]<='Z')
             d+=1;
         else if(a[j]>='a'&&a[j]<='z')
             x+=1;
         else if(a[j]>='0'&&a[j]<='9')
             n+=1;
         else if(a[j]==' ')
             k+=1;
         else
             q+=1;
         j++;
    }

    printf("upper case:%d\n",d);
    printf("lower case:%d\n",x);
    printf("digit:%d\n",n);
    printf("space:%d\n",k);
    printf("other:%d\n",q);
   }
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632