回 帖 发 新 帖 刷新版面

主题:Pascal的编程题,大家帮帮忙,急!!!

我是电脑初级者,遇到两道应该算是初级题(尽管我不会,呜!),要用非常急着知道答案,麻烦大家尽快帮忙,在这先谢谢了!
1,用递归实现函数digit(n,j),它回送整数n 的从右边开始的第j位数字。
例:digit(25367,4)=5
2,编写程序,输一段字符,统计其中大写字母、小写字母和数字的个数。例:输入’ABC1357xyz’,则返回大写字母个数为3,小写字母个数为3,数字个数为4。
[em17][em17][em17][em17][em17][em17]

回复列表 (共4个回复)

沙发

我随便写的,可能有错,看思路把!
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;


加分哦!

板凳

第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 楼

初学pascal  加群28276316

4 楼

第2题似乎可以使用集合来搞定!
准确的说:
定义三个集合数组(大写字母.数字,小写字母)然后分别统计个数!

我来回复

您尚未登录,请登录后再回复。点此登录或注册