求助 一道PASCAL的逆序數題不知哪裡出錯!

2025-01-30 22:55:27 字數 4657 閱讀 1013

1樓:網友

方法就是錯的。

最簡單的:var s:string;

i:integer;

beginreadln(s);

for i:=length(s) downto 1 do write(s[i]);

end.用你你那種方法是這樣:

var n,ans:longint;

beginreadln(n);

while n>0 do

beginans:=ans*10+n mod 10;

n:=n div 10;

end;writeln(ans);

end.

pascal題 大家幫忙看看**出錯了!^-^~~~~~~~~~~~

2樓:o逸水之寒

好吧,這個題目應該是水題。

vari,j,m,t,u,f,d,tot:longint;

a:array[0..100000] of char;

beginreadln(m,t,u,f,d);

for i:=1 to t do

readln(a[i]);

i:=0;while tot<=m do

begininc(i);

if a[i]='f' then tot:=tot+2*f elsetot:=tot+u+d;

end;writeln(i-1);

end.我的程式比你還短。

我是tyvj的站長 歡迎交流。

pascal輸出逆序數。

3樓:網友

你換種思路不從值上面去考慮,而是從數字本身考慮,就像兩位說的轉化成字串。但可以直接根據題意要求來,把最後一困脊位殲尺察輸出,再把倒數第二位輸出……以氏茄此類推。

repeat

writeln(n mod 10)(輸出個位數字);

n div 10(把當前個位數刪去);

until n全部刪光。

就可以了。

4樓:網友

有原題目嗎?是不是給你乙個數~~然後輸出逆序啊?

是的話可以用字串讀大局入輸出;好吧~~附上詳細的解釋滾慶讓~~希望~~

var i:longint;

str:string; /string類似integer(整數定義)字串(定義而已,長度255);

beginreadln(str);/以字串的型別讀入。

for i:=length(str) downto 1 do//從字元的長度(如abc123的最長length(str)就等於6)6->1輸出。

write(str[i]);輸出第i位,如str [6]就為3end. 用for語差悔句就可以搞定的。

5樓:網友

str語言拍洞解搏賀搏:

vars,t:string;

i:longint;

beginreadln(s);

for i:=length(s) downto 1 dot[i]:=s[length(s)-i+1];

write(t);

end.不用str語言基祥解:

vara,b,m:longint;

beginread(a);

repeat

write(a mod 10);

a:=a div 10;

until a=0;

end.

一道pascal 題,我有解法,但出錯了!其各位高手幫幫忙!!!!!

6樓:網友

不能夠直接read(a[i].namme);否則讀入名字將會讀成'zhangliang man 90 85 92'。所以你得要用另一種辦法。下面給出的是讀入的處理。

for i:=1 to 25 do

beginw:=#0;//w是字元型,char。#0表示什麼空串。

while w<>' ' do

beginread(w);

a[i].namme:=a[i].namme+w;

end;end;

其它的沒有問題。

7樓:小小毛毛寶寶

天啊……這題……過於深奧……

8樓:徐智祺

你能給個大點的圖或程式嗎?

判斷迴文數的程式出錯(pascal語言)

9樓:

str過程是將給定的數字轉換為乙個串而不是乙個字元。。

你的程式的意思是把原串逐個轉換團納成數塌備沒字,在把轉換成的數字倒著轉換回字元滾鍵串,與原串比較相等與否,所以,我建議你這樣修改:

program p1044;

var i,j,l,p:integer;

s,s1:string;

n:boolean;

a:array[1..200] of integer;

beginread(s);

n:=true;

for i:=1 to length(s) do a[i]:=ord(s[i])-48;

for j:=length(s) downto 1 do s1:=s1+chr(a[j]+48);

if s<>s1 then n:=false;

if n then write('yes') else write('no');

end. 如果我來寫這個程式,我會這樣寫:

var s:string;

i:longint;

beginreadln(s);

for i:=1 to length(s) shr 1 do

if s[i]<>s[length(s)-i+1] then begin writeln('no');halt; end;

writeln('yes');

end.這樣更加簡潔。。

一道pascal題目——拆數遊戲

10樓:網友

儘量拆分成3的和,當拆到最後的乙個為1時,把1分到前面去。

11樓:網友

經典的dp題。

自己搜一下吧。

用動態規劃。

pascal題目:隨機產生一些1—100之間的整數,直到產生的數為50為止

12樓:網友

樓上的程式好象不對吧。

隨即產生數字一定是要輸出的。

我覺得第乙個道是不錯就是沒有輸出。

應該這樣。vari:longint;

beginrandomize;

repeat

i:=1+random(100);

writeln(i);

until i=50;

end.

13樓:泥鰍

1你的程式a幹啥用。

2你不斷生成數字進行判斷跟判斷後輸出效率有區別的。

我給你乙個吧,我是學資訊學競賽的。

vari,count,max:integer;

beginrandomize;

max:=maxint;

for i:=1 to max do

if random(100)=50 then break;

writeln(i);

end.

14樓:網友

上面的那位,好象一不小心就會死迴圈的樣子。

vara:byte;

beginrandomize;

while random(100)<>50 do writeln(random(100));

end.

pascal 為什麼這道題編譯錯誤

15樓:science_電

樓主你好,在現在的很多free pascal或者turbo pascal軟體中,陣列不能夠直接的放入for迴圈中。

for q[1,a]:= 0 to 9 do這句話以及其後的句子都無法被軟體識別。建議你:

1、使用版本的free pascal(但是,這樣也只能迴圈乙個)2、不用陣列,用字母和數字混合代替(不過這樣很煩)。

其實,樓主也該靜下心來,想想別的簡便方法。

16樓:網友

...我見過的最無敵的程式。

for i:=1 to 9 do

for c:='a' to 'i' do

for j:=0 to 9 do

write('');

其實,我想知道樓主你到底想幹什麼。

17樓:網友

也沒見過這樣寫的邏輯表示式,簡直是瘋子胡言亂語:

. f1=f2)or(f1=f2)or(f1=f2)or(f1=f2)or(f1=f2)or(f1=f2)or(f1=f2)or(f1=f2)or(f1=f2) .

這麼長的玩意兒,實際不就是等價於 (f1=f2) ?

18樓:網友

for q[1,a]:= 0 to 9 do ..

這東西本來就不對,根本沒見過這麼用的。

19樓:匿名使用者

這是一道九宮格問題吧,貌似是用列舉。。。但還沒寫完。。。

一道英語題 求助,求助一道英語題

答案選c,名詞從句包括主語 賓語 表語和同位語等從句。它們可以由下列連詞引導 從屬連詞 that,whether,if 連線代詞 who ever whom,whose,what ever which ever 連線副詞 when,where,why,how,how much many long o...

pascal 一道水題啊!!!!急!!! 5

pascal 一道水題啊!急!program lyf vari,n,a,b,c longint beginreadln n b a for i to n do beginread c if c a then beginif b then begina c inc b endelse dec b en...

一道歷史題,一道歷史題,求助。。。

果斷選d。關鍵句 粗且為一時選用之本耳 b 恢復了漢朝的察舉制度 a。這段記載主要是介紹九品中正制的內容。一道歷史題,求助。他們中不少人在思想方法上存在絕對肯定或絕對否定的形式主義偏向。這種形式主義地看問題的方法,影響了這個運動後來的發展。這個我們以前老是講過。已發到你的郵箱,你看看可不可以,不滿意...