【发布时间】:2014-05-16 02:44:09
【问题描述】:
请帮助我,我的程序只是继续显示姓氏和数字,这是程序。 我真的不明白这里有什么问题,但我确实希望你们能看到它真的需要一些帮助它杀死我的大脑
Var
Counter:Integer;
MaxValue:Integer;
NumofVotes:Array[1..4]of Integer;
ChristianName:Array[1..4]of String;
Surname:Array[1..4]of String;
WinnerFName:String;
WinnerSName:String;
WinnerParty:String;
CandidateParty: Array[1..4] of String;
begin
FOR Counter:= 1 to 4 Do
If Counter= Counter Then
begin
Writeln ('Please enter Christian name of Candidate ', Counter, ':');
Readln (ChristianName[Counter]);
Writeln ;
Writeln ('Please enter Surname of Candidate ', Counter, ':');
Readln (Surname[Counter]);
Writeln ;
Writeln ('Please enter number of votes received by Candidate ', Counter, ':');
Readln (NumOfVotes[Counter]);
Writeln ;
Writeln ('Please enter party of Candidate ', Counter, ':');
Readln (CandidateParty[Counter]);
end;
IF Counter = 1 THEN
begin
MaxValue:= NumofVotes[Counter];
WinnerFName:= ChristianName[Counter];
WinnerSName:= Surname[Counter];
WinnerParty:= CandidateParty[Counter];
end
ELSE
IF (NumofVotes[Counter]>MaxValue) THEN
begin
WinnerFName:= ChristianName[Counter];
WinnerSName:= Surname[Counter];
MaxValue:= NumofVotes[Counter];
WinnerParty:= CandidateParty[Counter]
end;
Writeln ;
Writeln ('The winner of the elections for this constituency is:');
Writeln ('FirstName: ', WinnerFName, ' Surname: ', WinnerSName);
Writeln ('From the ', WinnerParty);
Writeln (WinnerFName, ' has won with ', MaxValue, ' votes');
Writeln ;
Writeln ;
Writeln ('Press <Enter> to end');
Readln ;
end.
【问题讨论】:
-
If Counter= Counter Then.. 那是什么样的测试?计数器始终是计数器。IF Counter = 1 THEN.. 你不能在帕斯卡循环之后使用'for'循环索引变量。就算可以,怎么可能是‘1’,上次是‘4’。 -
我这样做是因为当我没有这样做时,程序会变得很奇怪,它会同时显示所有四个问题,而不是按顺序显示它们
-
对不起,我刚刚把它拿出来了,它仍然可以工作,非常感谢,但是没有测试最大值呢??
-
如果您正确地格式化您的代码,您将能够(通过缩进级别)看到流程不像您想象的那样进行。 学习格式化您的代码,以便您可以阅读并遵循执行路径。 (强调是因为这已经在这里说了数百次了,但似乎没有人注意到它。不得不一遍又一遍地重复自己,这让人很沮丧。)话虽如此,学会正确地格式化你的代码。 :-) 有关为什么这很重要的一个明确示例,请参阅this answer,这不是我写的。
-
非常感谢先生,我刚上高中,想做一些编程,因为我真的很喜欢编程,但我似乎已经让它工作了,这就是我得到的
标签: counter record pascal records highest