回 帖 发 新 帖 刷新版面

主题:求助

今天在编一个记录类型的数组时候,其中用到字符紧缩数组packed array,结果发现对该数组无法进行读的操作,望哪位大狭给予支持帮助,感激不尽。

程序如下:

program t;
  const n=4;
  type a=packed array[1..15]of char;
       stu=record
       name:a;
       score:real;
       grade:char;
       end;
       studenta=array[1..n]of stu;
  var students:studenta;
      ave:real;
      i:integer;
    begin

      for i:=1 to n do
        with students[i] do
          readln(score,name);   编译到这里提示“该类型不能这样读”

      ave:=0;
      for i:=1 to n do
      ave:=ave+students[i].score;
      ave:=ave/n;

      write('name    score    grade    ');
      writeln;
      for i:=1 to n do
        with students[i] do
          begin
            if score>=ave then grade:='A' else
            if score>=ave-10 then grade:='B' else
            grade:='C';
        writeln(name,'      ',score:2:2,'      ',grade:2);
          end;
      end.

回复列表 (共5个回复)

沙发

数组不能直接读
把紧缩字符数组 packed array[1..15]of char 改成 string[15].
字符数组紧缩与不紧缩效果相同

板凳

哇!什么叫紧缩数组亚?我不懂啊

3 楼

我也不懂,老师没讲过

4 楼

紧缩数组是Turbo Pascal 3.0 版本的东西吧!现在已经淘汰十多年了。只是为了兼容旧版本,Turbo Pascal 7.0 仍然保留packed这个词语。也就是说,packed是没用的。

关于紧缩数组,我也不懂是什么,其实也完全没有必要知道它是什么,因为它完全没有用处了。

5 楼

呵呵,那就好啊

我来回复

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