PASCAL编程题 要求文件输入输出

2025-04-27 06:50:01
推荐回答(2个)
回答1:

已阅题(够恶心的)...

算法:直接统计

思路:
开一个1..100的数组f[i]来记录第i天有多少人空闲。
最后只要从1到100循环一遍查找人数最大值就可以了

程序(文件输入输出):

Program ex;
Var
f: array [1..100] of longint;
n, m, i, j, k, t, p: longint;

Begin
assign(input, 'meet.in');
reset(input);
assign(output,'meet.out');
rewrite(output);
fillchar(f, sizeof(f), 0);
readln(n, t);
for i:=1 to n do
begin
read(k);
for j:=1 to k do
begin
read(p);
f[p] := f[p] + 1;
end;
end;
m := 0;
t := 0;
for i:=1 to 100 do
if (f[i] > m) and (f[i] > t) then
begin
m := f[i];
t := i;
end;

writeln(t);
close(input);
close(output);
End.
FreePascal 中调试通过

---------------------
那个改动是有问题的!注意:如果与会人数少于组委会设定的人数Q,会议被取消,则输出"0"。

回答2:

Program ex;
Var
f: array [1..100] of longint;
n, m, i, j, k, t, p: longint;

Begin
assign(input, 'meet.in');
reset(input);
assign(output,'meet.out');
rewrite(output);

fillchar(f,sizeof(f), 0);
readln(n,t);
for i:=1 to n do
begin
read(k);
for j:=1 to k do
begin
read(p);
f[p] := f[p] + 1;
end;
end;
m := 0;
t := 0;
for i:=1 to 100 do
if (f[i] > m) then begin
m:=f[i];
t:=i;
end;
writeln(t);

close(input);
close(output);
End. 把楼上做了改动,有不必要的地方删了