Arrays 有没有更好的方法来编写这个程序?
我试着写一个Pascal程序,但每当我用TurboPascal运行它时,它就不起作用了。是否有任何方法可以更好地改进代码,以及我的代码可能存在哪些错误(提前谢谢 问题: 对10位流行艺术家进行了调查。每个人通过指定艺术家的人数(从1到10的值)为一位艺术家投票。编写一个程序读取艺术家的姓名,然后是投票,并找出哪位艺术家最受欢迎。选择合适的数据结束标记 这就是我所拥有的:Arrays 有没有更好的方法来编写这个程序?,arrays,turbo-pascal,Arrays,Turbo Pascal,我试着写一个Pascal程序,但每当我用TurboPascal运行它时,它就不起作用了。是否有任何方法可以更好地改进代码,以及我的代码可能存在哪些错误(提前谢谢 问题: 对10位流行艺术家进行了调查。每个人通过指定艺术家的人数(从1到10的值)为一位艺术家投票。编写一个程序读取艺术家的姓名,然后是投票,并找出哪位艺术家最受欢迎。选择合适的数据结束标记 这就是我所拥有的: Program artistes; uses crt; type artistarray = Array[1..10
Program artistes;
uses crt;
type
artistarray = Array[1..10] of string;
votearray = Array[1..10] of integer;
var
y1, y2, biggest, x: Integer;
artist: artistarray;
vote: votearray;
begin
clrscr;
textcolor(10);
biggest:= 0;
y1:= 0;
y2:= 0;
x:= 0;
write('Enter 10 artists ');
read (artist);
for x := 1 to 10 do
begin
artists[x] := artist;
read(artist);
end;
clrscr;
readln;
readln;
write('enter your vote number : ');
read(vote);
while (vote <> 999) do
begin
vote:= artist[x];
y1 := y + 1;
biggest:= vote;
end;
writeln('Enter your vote number : ');
read(vote);
vote:= artist[x];
y2:= y2 + 1;
If (y2 > y1) then
biggest:= vote
else
Biggest:= biggest;
writeln( 'The most popular artist is: ',vote, '.');
readln;
end.
节目艺人;
使用阴极射线管;
类型
artistarray=字符串的数组[1..10];
votearray=整数的数组[1..10];
变量
y1,y2,最大,x:整数;
艺术家:Artistaray;
投票:votearray;
开始
clrsc;
textcolor(10);
最大:=0;
y1:=0;
y2:=0;
x:=0;
写(‘输入10位艺术家’);
阅读(艺术家);
对于x:=1到10 do
开始
艺术家[x]:=艺术家;
阅读(艺术家);
结束;
clrsc;
readln;
readln;
写('输入您的投票号码:');
宣读(表决);
而(999票)做什么
开始
投票:=艺术家[x];
y1:=y+1;
最大:=投票;
结束;
writeln('输入您的投票号码:');
宣读(表决);
投票:=艺术家[x];
y2:=y2+1;
如果(y2>y1),则
最大:=投票
其他的
最大:=最大;
writeln(‘最受欢迎的艺术家是:’,投票,’);
readln;
结束。
你应该更具体一些,尤其是关于“它不起作用”。首先,你要阅读11位艺术家的作品,并存储前10位艺术家的作品。此外,你总是认为最后一位被投票的人最受欢迎……你甚至没有使用“最大”变量(一开始就没有设置正确).你不在循环中读取选票,所以只读取两张选票…这就是你想要的吗?