pascal 中的未知运行时错误

unknown runtime error in pascal

我无法找到我在学校编码中不断遇到的这个错误的来源。每次我在我的数组中输入一个值并且 for 循环运行时,它要么遇到运行时错误,要么程序的其余部分根据第一个值的信息运行并且不接受任何其他值。有人可以向我解释如何解决这个问题吗?

program Montserrat_Elections;

Var cndnme : array [1..4] of String;
    votes : array [1..4] of Integer;
    highest, cnt : Integer;
    winner : string;

begin

 highest:= 0;
 winner:= 'Dan';

 For cnt:= 1 to 4 do

     begin
          Writeln('Please enter the first name of the candidate and the number of votes');
          Read (cndnme[cnt], votes[cnt]);

          If votes[cnt] > highest then
             highest := votes[cnt];
             winner := cndnme[cnt];
     end;
 Writeln('The winner of this constituency is', winner, 'with', highest, 'votes')
end.

Read 更改为 Readln :

Readln (cndnme[cnt], votes[cnt]);

然后你需要添加 begin...end; 到这一行:

If votes[cnt] > highest then
      begin
         highest := votes[cnt];
         winner := cndnme[cnt];
      end;

I update & test your codes :

program Montserrat_Elections;

Var cndnme : array [1..4] of String;
    votes : array [1..4] of Integer;
    highest, cnt : Integer;
    winner : string;

begin
 highest:= 0;
 winner:= 'Dan';

 For cnt:= 1 to 4 do

 begin
      Writeln('Please enter the first name of the candidate and the number of votes');
      readln(cndnme[cnt], votes[cnt]);

      If votes[cnt] > highest then
      begin
         highest := votes[cnt];
         winner := cndnme[cnt];
      end;

 end;
 Writeln('The winner of this constituency is ', winner, ' with ', highest, ' votes');
 readln;
end.

结果:

Please enter the first name of the candidate and the number of votes                                                                                                            
Me                                                                                                                                                                              
23                                                                                                                                                                              
Please enter the first name of the candidate and the number of votes                                                                                                            
You                                                                                                                                                                             
42                                                                                                                                                                              
Please enter the first name of the candidate and the number of votes                                                                                                            
Ainun                                                                                                                                                                           
18                                                                                                                                                                              
Please enter the first name of the candidate and the number of votes                                                                                                            
Jhon                                                                                                                                                                            
38                                                                                                                                                                              
The winner of this constituency is You with 42 votes