??编了一段程序求输入的乱码中英文字母、数字、空格和其他字符的个数,我写了一段代码,但是编译始终通不过,看了好多遍也看不出哪里出问题了,求各位看看到底是哪里的毛病?程序我已经完全照原样打下来了,保证和原文一致。
??刚才的贴子我发急了,乱码太多,现在重新发一下,仔细核对了一下和原程序的差异,现在确定无误了。
??原程序里是没有注释的,注释是现在刚打上来的,为了格式整齐,注释和原程序之间加了一些特殊制表符。
#include<stdio.h>
void main()
{
long total=0,english=0,number=0,space=0,other;??
char a=getchar();
while(a!='\n')
{
total+=1;
if(a>='a'&&a<='z'||a>='A'&&a<='Z')english+=1;??
else if(a>='0'&&a<='9')number+=1;??
else if(a='\032')space+=1;??
}
other=total-english-number-space;??
printf("你一共输入了%ld个字符。\n",total);??
printf("这些字符包括:\n");
printf("%ld个英文字母,\n",english);??
printf("%ld个数字,\n",number);??
prinft("%ld个空格,\n",space);??
printf("和%ld个其他字符。\n",other);??
}
??每次都显示编译错误,但程序却无法标明是哪一行出了错,却在底下显示“未定义相关符号”,实在弄不清楚到底是什么原因,急求解决办法,谢谢!
“显示空格”那一行的prinft改为printf,自己还是不小心弄错了……其他都没错了。问一下为什么编译通不过?
二楼的不是你说的那个问题,你的那一句我在while循环的前面已经定义了,你仔细看看?
编程求统计一段乱码中的英文、数字、空格和其他的问题
答案:6 悬赏:40 手机版
解决时间 2021-03-01 10:15
- 提问者网友:黑米和小志
- 2021-03-01 03:14
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-03-01 03:19
错误被发现..你在程序中可能使用到个中文的字符
定义字符变量a的方法是不正确的.
当a为空格 应该这样写 a==' '; 两个等号才表示相等!
修改后的程序如下..测试可以实现!
#include<stdio.h>
void main()
{
long total=0,english=0,number=0,space=0,other;
char a;
while((a=getchar())!='\n')
{
total+=1;
if(a>='a'&&a<='z'||a>='A'&&a<='Z')
english+=1;
else if(a>='0'&&a<='9')
number+=1;
else if(a==' ')
space+=1;
}
other=total-english-number-space;
printf("你一共输入了%ld个字符。\n",total);
printf("这些字符包括:\n");
printf("%ld个英文字母,\n",english);
printf("%ld个数字,\n",number);
printf("%ld个空格,\n",space);
printf("和%ld个其他字符。\n",other);
}
定义字符变量a的方法是不正确的.
当a为空格 应该这样写 a==' '; 两个等号才表示相等!
修改后的程序如下..测试可以实现!
#include<stdio.h>
void main()
{
long total=0,english=0,number=0,space=0,other;
char a;
while((a=getchar())!='\n')
{
total+=1;
if(a>='a'&&a<='z'||a>='A'&&a<='Z')
english+=1;
else if(a>='0'&&a<='9')
number+=1;
else if(a==' ')
space+=1;
}
other=total-english-number-space;
printf("你一共输入了%ld个字符。\n",total);
printf("这些字符包括:\n");
printf("%ld个英文字母,\n",english);
printf("%ld个数字,\n",number);
printf("%ld个空格,\n",space);
printf("和%ld个其他字符。\n",other);
}
全部回答
- 1楼网友:骨子里都是戏
- 2021-03-01 07:28
long total=0,english=0,number=0,space=0,other=0;不对啊。应该定义成整型变量啊。 int total=0,english=0,number=0,space=0,other=0;
- 2楼网友:一袍清酒付
- 2021-03-01 06:32
032是八进制相当于的十进制的26,空格的ASCII码是十进制的32。再有就是你应该利用循环输入,在用个SWITCH语句,我想这样会比你的程序好。
- 3楼网友:轮獄道
- 2021-03-01 05:54
#include<stdio.h>
void main()
{
long total=0,english=0,number=0,space=0,other;
char a=getchar();getchar();
while(a!='\n')
{
total+=1;
if(a>='a'&&a<='z'||a>='A'&&a<='Z')
english+=1;
else if(a>='0'&&a<='9')
number+=1;
else if(a='\032')
space+=1;
a=getchar();
getchar();
}
other=total-english-number-space;
printf("你一共输入了%ld个字符。\n",total);
printf("这些字符包括:\n");
printf("%ld个英文字母,\n",english);
printf("%ld个数字,\n",number);
printf("%ld个空格,\n",space);
printf("和%ld个其他字符。\n",other);
}
- 4楼网友:话散在刀尖上
- 2021-03-01 05:36
#include<stdio.h>
void main()
{
long total=0,english=0,number=0,space=0,other;
char a[100];
int i=0;
gets(a);
while(a[i]!='\0')
{
total+=1;
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')english+=1;
else if(a[i]>='0'&&a[i]<='9')number+=1;
else if(a[i]='\032')space+=1;
i++;
}
other=total-english-number-space;
printf("你一共输入了%ld个字符。\n",total);
printf("这些字符包括:\n");
printf("%ld个英文字母,\n",english);
printf("%ld个数字,\n",number);
printf("%ld个空格,\n",space);
printf("和%ld个其他字符。\n",other);
}
改动的地方:char a=getchar();说明a是一个字符,而你要输入的是字符串,这里有大问题,而正由于你取的是一个字符,根本没得结束这回事,所以根本调不出来。用字符数组a[100]存储,从而进行判断。
已调试通过
- 5楼网友:往事隔山水
- 2021-03-01 04:31
long total=0,english=0,number=0,space=0,other=0;不对啊。应该定义成整型变量啊。 int total=0,english=0,number=0,space=0护触篙吠蕻杜戈森恭缉,other=0;
再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯