回 帖 发 新 帖 刷新版面

主题:信息学奥赛求救

我是一初二学生,最近在准备信息奥赛,做历届的试题,遇到一个大问题:第十届普及组初赛的程序阅读题4。不了解这个程序具体是怎么循环以及实现什么?
源程序粘贴:
 program program4;
    var c:array[1..2] of string[200];
        s:array[1..10] of integer;
        m,n,i:integer;
    procedure numara;
    var cod:boolean;
        i,j,nr:integer;
    begin
      for j:=1 to n do begin
        nr:=0;cod:=true;
        for i:=1 to m do
          if c[i,j]=''''1'''' then begin
            if not cod then begin
              cod:=true;inc(s[nr]);nr:=0;
            end
          end
          else begin
            if cod then begin
              nr:=1;cod:=false;
            end
            else inc(nr);
          end;
        if not cod then inc(s[nr]);
      end;
    end;
    begin
      readln(m,n);
      for i:=1 to m do readln(c[i]);
      numara;
      for i:=1 to m do
        if s[i] <>0 then write(i,'''' '''',s[i],'''' '''');
    end.
输入:3 10
      1110000111
      1100001111
      1000000011
问题:s[i]表示什么,c[i,j]是怎么循环的是行循环还是列循环?
恳请各位大侠指点:每一个语句是实现什么要求

回复列表 (共4个回复)

沙发

我记得是统计1个0出现的次数,2个0连续出现的次数,3个。。。。。。

板凳

初学pascal  加群28276316

3 楼

答案应该是2

4 楼

1 4 6 1 3 3

我来回复

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