永发信息网

编程求统计一段乱码中的英文、数字、空格和其他的问题

答案:6  悬赏:40  手机版
解决时间 2021-03-01 10:15
??编了一段程序求输入的乱码中英文字母、数字、空格和其他字符的个数,我写了一段代码,但是编译始终通不过,看了好多遍也看不出哪里出问题了,求各位看看到底是哪里的毛病?程序我已经完全照原样打下来了,保证和原文一致。
??刚才的贴子我发急了,乱码太多,现在重新发一下,仔细核对了一下和原程序的差异,现在确定无误了。
??原程序里是没有注释的,注释是现在刚打上来的,为了格式整齐,注释和原程序之间加了一些特殊制表符。

#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循环的前面已经定义了,你仔细看看?
最佳答案
错误被发现..你在程序中可能使用到个中文的字符
定义字符变量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);
}
全部回答
long total=0,english=0,number=0,space=0,other=0;不对啊。应该定义成整型变量啊。 int total=0,english=0,number=0,space=0,other=0;
032是八进制相当于的十进制的26,空格的ASCII码是十进制的32。再有就是你应该利用循环输入,在用个SWITCH语句,我想这样会比你的程序好。
#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); }
#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]存储,从而进行判断。 已调试通过
long total=0,english=0,number=0,space=0,other=0;不对啊。应该定义成整型变量啊。 int total=0,english=0,number=0,space=0护触篙吠蕻杜戈森恭缉,other=0; 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
青岛到潍坊的长途汽车会经过莱西么
韦进士在哪里啊,我有事要去这个地方
怎么从东莞石龙去惠州东江工业区的水口镇!
阿南美发在哪里啊,我有事要去这个地方
女,28岁。发热半个月,弛张热型,伴恶寒、关
河南省郭亮村目前路况怎样?从徐州去,路好吗
潮汕元丰盛肠粉在什么地方啊,我要过去处理事
成兰高铁什么时候通车
罪恶王冠制作很庞大吗
爱的魔术……就是有五张带玫瑰花的扑克牌,变
赤沙多美汇超市怎么去啊,有知道地址的么
工亡赔偿金如何分配
蓝天和白云有什么含义?
tcl f220空气净化器怎么连接wifi
2001欧冠,拜仁淘汰的对手都有谁?
推荐资讯
3.96/(40.5-29.5)怎么用简便方法
买彩票两元中全号是钱,怎样买
LOL抽奖活动是一个一个买红包得到的好东西多
王俊凯有女朋友吗?要是有,请大家说出理由!
下列各项,不属于心火亢盛证临床表现的是()A.
MAPGIS里如何全图修改各图层颜色(黑色),而保
图1表示光合作用部分过程的图解,图2表示改变
客户又送了两条中华5000,这烟很少吗?多少一
什么是通感
我买的新农保是三百元-年,村里下来人收的,已
年可以组什么词语一年级
手机qq日本2012
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?