中易网

pascal输入一串字符,以“?”结束,输出字母字符,数字字符和其它字符的个数?

答案:4  悬赏:20  
解决时间 2021-02-11 20:22
pascal输入一串字符,以“?”结束,输出字母字符,数字字符和其它字符的个数?
最佳答案
program ex;
var
zf,sz,zm:integer;
ch:char;
begin
zf:=0;
sz:=0;
zm:=0;
read(ch);
while ch<>'?' do
begin
if (ord(ch)>=48)and(ord(ch)<=57) then inc(sz)
else if (ord(ch)>=65)and (ord(ch)<=122) then inc(zm)
else inc(zf);
read(ch);
end;
writeln('zifu:',zf);
writeln('zimu:',zm);
writeln('shuzi:',sz);
readln;
end.
利用ascii码来判断,方便快捷
全部回答
可以定义两个集合常量,a=set of '1'.. '9',b=set of 'a'.. 'z',每读入一个字符都进行判断,有在a中、在b中和都不在三种情况,分别将数值加一即可。
program count; var c:char; x,y,z:longint; begin repeat read(c); if c<>'?' then begin if (c>='0')and(c<='9') then inc(x) else if (c>='a')and(c<='z')or(c>='a')and(c<='z') then inc(y) else inc(z); end; until c='?'; writeln(x,' ',y,' ',z); end. x是数字个数,y是字母个数,z是其他字符个数。 没有统计最后一个'?'要统计的话就最后把z加1就可以了
做这类题关键掌握Ascii码转换,用函数ord(ch)做。大于等于48小于等于57的Ascii码为数字,大于等于65小于等于122为大写字母。其他为字符(别题或许错误,本题是正确的)但,且慢!!楼上的程序有了一个致命的错误,str(90)='Z',str(91)='[',str(95)='_',str(97)才等于'a'。所以,判断是否为字母,((ord(ch)>=65)and(ord(ch)<=90))or((ord(ch)>=97)and(ord(ch)<=122))下面是参考程序:var zf,sz,zm:integer; ch:char; begin zf:=0; sz:=0; zm:=0; read(ch); while ch<>'?' do//读入处理 begin if (ord(ch)>=48)and(ord(ch)<=57) then inc(sz)//处理数字 else if ((ord(ch)>=65)and(ord(ch)<=90))or((ord(ch)>=97)and(ord(ch)<=122)) then inc(zm)//处理字母(关键) else inc(zf);//除了字母和数字就是字符 end; writeln('zifu:',zf); writeln('zimu:',zm); writeln('shuzi:',sz); readln; end. 由于时间来不及,我直接在网页上打,没有运行。有可能会出现笔误或单引号错误,你复制时可以修改,请谅解。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
考公务员需要过英语4、6级吗?谢谢!
求一个很萌的男生网名~
很征服差不多的词语
电影【旋风九日}完整版哪里有
自然瘦脸小妙招。还有让鼻子自然变挺。(ps:
建扬驾校报名处我想知道这个在什么地方
吴君如演的恐怖片养小鬼的
皇家跆拳道俱乐部这个地址在什么地方,我要处
施工单位发生安全事故是由谁上报安全监督管理
快递单号填错了,正确的单号显示顾客已经收到
中国平安人寿保险乐至营销服务部地址有知道的
黑糖做饮料
我用身份证注册的手机号,然后又把手机号给别
赛尔欢迎你歌词
LEONARDO怎么去啊,有知道地址的么
推荐资讯
富平县流曲镇大岗小学地址有知道的么?有点事
福建漳州市(芗城区)环城内的农村利用旧房改是
这题怎么算
红红十里香饸饹面怎么去啊,有知道地址的么
哈尔滨大众新城晚间有猪粪臭味,夏天晚间都不
高中化学实验绘图软件
买辆长安cs75不偷懒一天跑12小时滴滴优步能赚
你好,平安银行额度3000的信用卡,可以透支多
咘遵地址在哪,我要去那里办事
鸽子第一次飞最晚几天回来、时间久了还可能回
THE STEPS BAR怎么样
有规定哪的房子动迁就不能落户口了
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?