私は形式の入力ファイルを持っている:、
Pascalの入力からリンクリストを作成するには?
()、(n-1)の...(0)
例えば
type
tt = ^t;
t = record
a: Integer;
n: Integer;
next: tt
end;
:
(5 10)、(5~9)、(5~8)、(5~7)、(5,6)、(5)、(5 4)、(5 3) 、(5 2)、(5 1)、(5 0)
画像上にあるはずです:
新しいコード(期待通りに動作します):
program ex4_19;
type
tt = ^t;
t = record
a: Integer;
n: Integer;
next: tt
end;
var
ukzv, ukrs: tt;
inp: text;
raDone: boolean;
i: integer;
str: string;
begin
assign(inp, 'f1.txt'); reset(inp);
assign(output, 'out.txt'); rewrite(output);
new(ukzv);
ukrs:=ukzv;
read(inp, str);
writeln(str);
for i:=1 to length(str) do
begin
case str[i] of
'(':
begin
raDone:=false;
new(ukzv^.next);
ukzv:=ukzv^.next;
ukzv^.a:=0;
ukzv^.n:=0;
end;
'0' .. '9':
begin
if raDone = false then
ukzv^.a:=ukzv^.a * 10 + (ord(str[i]) - ord('0'))
else
ukzv^.n:=ukzv^.n * 10 + (ord(str[i]) - ord('0'));
end;
' ':
begin
if raDone = false then
begin
raDone:=true;
end;
end;
')':
begin
ukzv^.next:=nil;
end;
end;
end;
ukzv:=ukrs;
while ukzv^.next <> nil do
begin
writeln(ukzv^.next^.a, ' ', ukzv^.next^.n);
ukzv:=ukzv^.next;
end;
end.
秒数後に我々が持っているので、私はエラー「無効な数値形式」を持っています「)」。私は数字が(1〜1000)異なる可能性があるので、 ')'までの数字の読み取り方法はわかりません。
何を試しましたか?どのように失敗しましたか? [so]はコード作成サービスではありません。特定の問題の[mcve]を提供し、それを解決するためのあなたの努力と、どのように不十分であるかを説明する必要があります。 [質問]良い質問を参照してください。 –
@JeffZeitlin申し訳ありません。私はそのタスクをどのように実装するのか分かりません。私は上のコードが誰かを助けるとは思わない。ちょっとだから。 –
開始ヒント:あなたの入力を純粋に文字列として読み取ってから、数字を得るために解析する必要があります。 –