主题:Pascal的编程题,大家帮帮忙,急!!!
freesinger
[专家分:0] 发布于 2006-09-21 18:34:00
我是电脑初级者,遇到两道应该算是初级题(尽管我不会,呜!),要用非常急着知道答案,麻烦大家尽快帮忙,在这先谢谢了!
1,用递归实现函数digit(n,j),它回送整数n 的从右边开始的第j位数字。
例:digit(25367,4)=5
2,编写程序,输一段字符,统计其中大写字母、小写字母和数字的个数。例:输入’ABC1357xyz’,则返回大写字母个数为3,小写字母个数为3,数字个数为4。
[em17][em17][em17][em17][em17][em17]
回复列表 (共4个回复)
沙发
贺天行宝 [专家分:2300] 发布于 2006-09-21 21:15:00
我随便写的,可能有错,看思路把!
1
function digit(k:integer;j:integer):integer;
var i:integer;
begin
for i:=1 to j-1 do k:=k div 10;
digit:=k mod 10;
end;
2
var
s:string;
i,j,k:integer;
begin
readln(s);
k:=length(s);
j:=0;
for i:=1 to k do
if s[i] in ['A'..'Z'] then inc(j);
writeln(j);
end;
加分哦!
板凳
maxumi [专家分:2200] 发布于 2006-09-22 09:31:00
第1个
function digit(k:longint;j:longint):longint;
begin
if j=1 then digit:=k mod 10 else digit:=digit(k div 10,j-1);
end;
第2个
program lx;
var
s:string;
i,x,y,z:integer;
begin
readln(s);
x:=0;
y:=0;
z:=0;
for i:=1 to length(s) do begin
if s[i] in ['A'..'Z'] then inc(x);
if s[i] in ['a'..'z'] then inc(y);
if s[i] in ['0'..'9'] then inc(z);
end;
writeln('Big:',x);
writeln('Small:',y);
writeln('Number:',z);
end.
以上
3 楼
wangshl888 [专家分:0] 发布于 2006-10-04 15:06:00
初学pascal 加群28276316
4 楼
bigchen [专家分:1940] 发布于 2006-10-25 22:05:00
第2题似乎可以使用集合来搞定!
准确的说:
定义三个集合数组(大写字母.数字,小写字母)然后分别统计个数!
我来回复