【if (m div 100=3) or ((m-(m div 100)*100) div 10=3) or (m mod 10=3)】
接著一個判斷語句或一個迴圈語句下面若有兩個或兩個以上的執行語句(也就是帶分號的),必須用begin和end括起來,否則只執行第一條語句,您的程式就是隻執行writeln(m),後面的n:=n+1;不在if語句之內,所以他不判斷,只要執行完前面的if語句不管m怎麼樣n都加1,所以:
【then begin writeln(m);n:=+1;end;】(不是最後一個語句end不加.,加;)
最後,既然要統計個數,那麼就必須輸出個數,所以在end;後面加writeln(n);
正確的程式是:
program three;
var n,m:integer;
begin
n:=0;
for m:=1 to 999 do
if (m div 100=3) or ((m-(m div 100)*100) div 10=3) or (m mod 10=3)
then
writeln(m);
n:=n+1;
end;
writeln(n);
end.
Pascal是DOS系統,複製的時候,要把它複製到一個TXT格式的記事本上,然後儲存,將字尾名‘.txt’改為“.pas”就好了。
【if (m div 100=3) or ((m-(m div 100)*100) div 10=3) or (m mod 10=3)】
接著一個判斷語句或一個迴圈語句下面若有兩個或兩個以上的執行語句(也就是帶分號的),必須用begin和end括起來,否則只執行第一條語句,您的程式就是隻執行writeln(m),後面的n:=n+1;不在if語句之內,所以他不判斷,只要執行完前面的if語句不管m怎麼樣n都加1,所以:
【then begin writeln(m);n:=+1;end;】(不是最後一個語句end不加.,加;)
最後,既然要統計個數,那麼就必須輸出個數,所以在end;後面加writeln(n);
正確的程式是:
program three;
var n,m:integer;
begin
n:=0;
for m:=1 to 999 do
if (m div 100=3) or ((m-(m div 100)*100) div 10=3) or (m mod 10=3)
then
begin
writeln(m);
n:=n+1;
end;
writeln(n);
end.
Pascal是DOS系統,複製的時候,要把它複製到一個TXT格式的記事本上,然後儲存,將字尾名‘.txt’改為“.pas”就好了。