这道是pascal的读程序题目,我要的是过程,不是单单一个答案读程序10、Program ex10;var a:string; n:integer; procedure getnext(var str:string); var l,i,j,k:integer; \x05temp:char; begin \x05L := length(str); \x05k := L - 1; while

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 19:47:50
这道是pascal的读程序题目,我要的是过程,不是单单一个答案读程序10、Program ex10;var a:string; n:integer; procedure getnext(var str:string); var l,i,j,k:integer; \x05temp:char; begin \x05L := length(str); \x05k := L - 1; while

这道是pascal的读程序题目,我要的是过程,不是单单一个答案读程序10、Program ex10;var a:string; n:integer; procedure getnext(var str:string); var l,i,j,k:integer; \x05temp:char; begin \x05L := length(str); \x05k := L - 1; while
这道是pascal的读程序题目,我要的是过程,不是单单一个答案
读程序10、Program ex10;
var
a:string;
n:integer;
procedure getnext(var str:string);
var l,i,j,k:integer;
\x05temp:char;
begin
\x05L := length(str);
\x05k := L - 1;
while (k >= 1) and (str[k] > str[k + 1]) do dec(k);
\x05i := k + 1;
while (i str[k]) do inc(i);
\x05temp := str[k];
\x05str[k] := str[i - 1];
\x05str[i - 1] := temp;
for i := L downto k + 1 do
\x05for j := k + 1 to i - 1 do
\x05if str[j] > str[j + 1] then
\x05begin
\x05temp := str[j];
\x05str[j] := str[j + 1];
\x05str[j + 1] := temp;
\x05end;
end;
begin
read(a); read(n);
while n > 0 do
begin
\x05getnext(a);
\x05dec(n);
end;
\x05write(a);
end.
输入:NOIP 3
输出:______________

这道是pascal的读程序题目,我要的是过程,不是单单一个答案读程序10、Program ex10;var a:string; n:integer; procedure getnext(var str:string); var l,i,j,k:integer; \x05temp:char; begin \x05L := length(str); \x05k := L - 1; while
这是NOIP2009初赛普及组(Pascal版本)第四大题(阅读程序写结果)第4小题,题目中存在一处数据输入格式的错误:该题提供的输入为“NOIP 3”,本意是分别读入到一个字符串和整型变量中,但是由于本题的输入在同一行(read(a); read(n); ),数据中缺少一个换行,按照程序的写法,Pascal语言会将这一行输入都作为字符串读入,而无法读到3,因此程序的实际运行无法得到答案给出的结果.
经过讨论,该题在阅卷时接受以下三种情况的答案(仅限Pascal语言,不涉及C/C++语言的试卷),即以下3种情形均可得分:
1.NPOI(注:按照题目本意理解并正确完成).
2.NOIP 3 (注:此种情况是输入“NOIP 3”后,程序等待继续输入时,输入Ctrl+Z结束输入,也包括文件流定向到标准输入的情形).
3.结果处给出适当文字说明,例如“等待输入”;“程序无法结束”;“根据不同的n值,输出结果不同”等,但结果处简单空白且不加任何说明将不给分.
程序其实也不难,仔细在草稿纸上模拟一小就好了.(当年我程序部分几乎全对,只是做最后一道完善程序时只剩13分钟,于是放弃了,白白扣了13分,::>_