所以我正在尝试为学校写一个程序
问题是,即使使用readln()
,程序也会在最后一次输出后立即关闭。
这是代码,但我不知道问题是什么,我已经尝试了一切;
program Calcolo;
var El, EC, S, N:Real;
var nome:string;
function returnVote(a, b, c, d:Real):Real;
begin
returnVote:= a+(2 * b) - (c / 2) - (d / 4);
end;
begin
writeln('Programma per calcolare il voto fornendo il numero di risposte esatte,');
writeln('quelle esatte e incomplete, quelle sbagliate e quelle non date');
writeln('=====================================================================');
writeln('Fornire il nome dello studente: ');
read(nome);
writeln('Fornire il numero di risposte esatte e complete: ');
read(EC);
writeln('Fornire il numero di risposte esatte ma incomplete: ');
read(El);
writeln('Fornire il numero di risposte sbagliate: ');
read(S);
writeln('Fornire il numero di risposte non date: ');
read(N);
writeln('Il voto calcolato per lo studente ', nome,' e di: ', returnVote(El, EC, S, N):3:1);
readln();
end.
答案 0 :(得分:0)
当用户输入最后一个号码并按Enter键时,该号码将写入N
变量,但输入仍保留在缓冲区中。因此,当程序到达最后readln()
时,它会读取进入和退出。
为防止这种情况发生,您应该将所有read
替换为readln
s(或至少替换最后一个)。
也就是说,当你需要查看你的程序在输出中写的内容时,使用readln
并不是一个好习惯。如果你使用的是旧的IDE,比如Turbo Pascal,那么有一个菜单项可以在程序终止后显示输出。
现代IDE不会关闭窗口,如果你没有使用任何IDE,那么你可能会在控制台中看到输出。