做的作业 检查不出错 连接不出错 一运行 就停止工作 指点一下吧
#include<stdio.h>
int main()
{
char a[100];
char f;
int b=0,c=0,d=0,e=0,i;
scanf("%s",a);
for(i=0;(f=a[i])!='\0';i++)
{
if((f>='a')&&(f<='Z'))
b++;
else if(f=' ')
c++;
else if((f='0')&&(f<='9'))
d++;
else
e++;
}
printf("%s\n",a[100]);
printf("%d",b);
printf("%d",c);
printf("%d",d);
printf("%d",e);
return 0;
}
[解决办法]
这行的格式化参数不符:printf("%c\n",a[100]);至于功能逻辑对不对就不知道了。
[解决办法]
printf("%c\n",a[100]);
改为
printf("%s\n",a);
[解决办法]
if((f>='a')&&(f<='Z')) //你这里用了大写'Z',ascii码中'Z'是65,'a'是97
else if(f=' ') //本应该是判等的,用了赋值,是 ==
else if((f='0')&&(f<='9')) //同上
printf("%s\n",a[100]); //这里需要的是地址,也就应该改为 a
[解决办法]
- C/C++ code
#include<stdio.h>int main(){char a[100];char f;int b=0,c=0,d=0,e=0,i;scanf("%s",a);for(i=0;(f=a[i])!='\0';i++){if((f>='a')&&(f<='z')) //修改b++;else if(f==' ') //修改c++;else if((f>='0')&&(f<='9')) //修改d++;elsee++;}printf("%s\n",a); //修改printf("%d",b);printf("%d",c);printf("%d",d);printf("%d",e);return 0;}
[解决办法]
忘了说这个:else if(f==' ') //这句没用的,scanf遇到空格就会停止,不可能出行空格
[解决办法]