獲得獎學金最多的帕斯卡很快就對解決問題進行了排名

發布 教育 2024-07-27
14個回答
  1. 匿名使用者2024-01-31

    編譯通過。 測試資料 01:答案正確。 0ms

    測試資料 02:正確答案。 0ms

    測試資料 03:答案正確。 0ms

    測試資料04:正確答案。 0ms

    測試資料05:答案正確。 0ms

    測試資料 06:答案正確。 0ms

    測試資料 07:答案正確。 0ms

    測試資料 08:答案正確。 0ms

    測試資料09:正確答案。 0ms

    測試資料 10:正確答案。 0ms

    接受的有效分數:100 有效時間:0ms

    program temp;

    name:array[1..20]of char;

    mo:integer;

    ping:integer;

    gan:char;

    xi:char;

    lun:integer;

    z:integer;

    end;var

    m:char;

    z,i,j,n,b,c,l,p:integer;

    w:longint;

    beginreadln(n);

    for i:=1to n do

    for j:=1to 20 do a[i].name[j]:=' ';

    for i:=1to n do begin

    read(m); l:=1;

    while m<>' 'do begin

    a[i].name[l]:=m;l:=l+1;read(m);

    end;read(a[i].mo,a[i].ping);

    read(m);read(a[i].gan);

    read(m);

    read(a[i].xi);

    readln(a[i].lun);

    if(a[i].mo>80)and(a[i].lun>0) then z:=z+8000;

    if(a[i].mo>85)and(a[i].ping>80) then z:=z+4000;

    if(a[i].mo>90) then z:=z+2000;

    if(a[i].mo>85)and(a[i].xi='y') then z:=z+1000;

    if(a[i].ping>80)and(a[i].gan='y')then z:=z+850;

    a[i].z:=z;

    z:=0;end;

    for i:=1to n-1 do

    for j:= i+1to n do

    if a[i].z' 'do begin

    write(a[1].name[c]);c:=c+1;

    end;writeln;

    writeln(a[1].z);

    writeln(w);

    end.

  2. 匿名使用者2024-01-30

    LS在冒泡,對吧? 我從未見過這樣的快速划船。

    真正的快速排序應如下所示(假設被排序的陣列是 a,並且快速排序按公升序排序):

    procedure qsort(l,h:integer);

    vari,j,t,m:integer;

    begini:=l; j:=h;

    m:=a[(i+j) div 2];注意:這句話不能寫成:m:=(i+j) div 2;

    repeat

    while a[i]';

    如果 i<=j,則注意它是 '<=';

    begint:=a[i]; a[i]:=a[j]; a[j]:=t;

    inc(i); dec(j);

    end;until i>j;請注意,它是乙個大於符號,而不是 '>=';

    if il then qsort(l,j);這兩條線是遞迴搜尋的;

  3. 匿名使用者2024-01-29

    varn,t,i:integer;

    a:array[1..100000] of integer;這裡,A 陣列用於儲存讀取和輸出的數量,可以根據問題使用。

    其他變數的大小也可以根據題的要求進行更改,只要型別好。

    procedure kp(l,r:integer);

    vari,j,m:integer;

    begini:=l;j:=r;m:

    a[random(r-l)+1];這裡,“m:=a[random(r-l)+1]; “我使用的是隨機快速划船,也可以使用”m:=a[(l+r) div 2]; “走中間,快排,”m:

    a[l];“普通快行,一般說來,效率隨機快行”取中間快行“普通快行”。

    repeat

    while a[i]m do dec(j);

    if ij;

    if j>l then kp(l,j);

    if iend;

    beginreadln(n);

    for i:=1 to n do read(a[i]);

    kp(1,n);

    for i:=1 to n-1 do write(a[i],' ');

    writeln(a[n]);

    end.

  4. 匿名使用者2024-01-28

    假設陣列 a 中有 k 個元素,按公升序排列:

    for t:=1 to k-1 do

    for i:=1 to k-1 do

    if a[i]>a[i+1] then

    beginc:=a[i];

    a[i]:=a[i+1];

    a[i+1]:=c;

    end;假設陣列 a 中有 k 個元素,按降序排列:

    for t:=1 to k-1 do

    for i:=1 to k-1 do

    if a[i]begin

    c:=a[i];

    a[i]:=a[i+1];

    a[i+1]:=c;

    end;函式名稱的所有者會自己新增它。

  5. 匿名使用者2024-01-27

    您使用的是FPC嗎?

    FPC 演示文字的排序過程是標準的快速消耗。

  6. 匿名使用者2024-01-26

    這個從小到大,因為這兩句話。

    whilex[i]k

    dodec(j);

    只需將它們換成大小即可。

    whilex[i]>k

    doinc(i);

    whilex[j]dodec(j);

  7. 匿名使用者2024-01-25

    這個快速行欄看起來像這樣。

    我會用我的程式告訴你。

    proceduer kp(l,r:integer);

    var c,d,e,f:integer;

    beginc:=l;d:=r;e:=a[(l+r) div 2];

    repeat

    while a[c]e do dec(d);

    if c<=d then begin

    f:=a[c];a[c]:=a[d];a[d]:=f;

    inc(c);

    dec(d);

    end;until c>d;

    如果是 cd,則遞迴呼叫,如果 c 呼叫與剛才提到的內容相同的內容。

    明白了?

  8. 匿名使用者2024-01-24

    procedure qsort(l,r:longint);

    vari,j,k,mid:longint;

    begini:=l;

    j:=r;mid:=a[(l+r) shr 1];

    repeat

    而 a[i]《Jing Collapse Mid do Inc(i);

    while a[j]>mid do dec(j);

    if i<=j then

    begink:=a[i]; a[i]:=a[j];a[j]:=k;

    inc(i);

    dec(j);

    end;until i>j;

    if iif lend;原創解決方案,歡迎!

  9. 匿名使用者2024-01-23

    vara:array[1..1000]of integer;

    i:integer;

    procedure qsort(l,r:integer);

    vari,j,x,t:integer;x:當回族被破解時,判斷力就喪失了; t:交換資料。

    begini:=l;j:=r;x:=a[(i+j)div 2];

    repeat

    while a[i]x do dec(j);找到小於 x 的數字。

    if i<=j then begin t:=a[i];a[i]:=a[j];a[j]:=t;inc(i);dec(j);end;交換。

    until i>j;

    if iif lend;begin

    randomize;隨機種子。

    for i:=1 to 100 do a[i]:=random(500);初始化陣列。

    qsort(1,n);Dig Bi Tremor Sort 1 n (Fast Row) for i:=1 to 100 do write(a[i],'輸出。

    end.

  10. 匿名使用者2024-01-22

    第一種是將中間數設定為中間數的序數,只要找到前幾個數字,第二種是將數字設定為中間數,並直接進行比較。

    實際上,程式有點錯誤,它應該是 mid:=a[i+(i+j) div2],因為它是從開頭 i 開始的中間程式。

    希望對您有所幫助,謝謝!

  11. 匿名使用者2024-01-21

    以下文字:

    確定 MID,但 a[mid] 的值在排列過程中可能會發生變化。 比較了一下,換了。。。

    所以這是錯誤的......

  12. 匿名使用者2024-01-20

    從理論上講,應該沒有區別,在帕斯卡中,底部應該不能正常工作,而頂部是正常方法。

  13. 匿名使用者2024-01-19

    pascal中的快速行是選擇乙個參考元素,將區間中的每個數字與參考元素進行比較,將大的放在右邊,小的放在左邊(觀察值可以隨意調整),給你乙個參考程式。 (程式不是唯一的,只要知道演算法就可以自由編寫,這裡我給出一種我習慣的寫法)。

    var n,i,j:integer;

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

    procedure qsort(l,r:integer);

    var i,j,k:integer;

    begink:=a[l];

    i:=l;j:=r;

    repeat

    而 (a[j]>=k) 和 (i5 所以 dec(j);

    在這種情況下,j 指向 1,並且由於 1<5,a[j] 的值被分配給 a[i],並且 inc(i) 同時

    序列為 1 10 3 1 9

    現在 i 指向 10,因為 a[i]>k 是 10>5,所以 a[i] 的值被分配給 a[j] 和 dec(j),序列是 1 10 3 10 9

    現在 j 指向 3,因為 a[j] 現在在序列 1 3 3 10 9 中

    由於 i=j,我們退出重複迴圈,現在將 k 的值分配給 a[i] 以完成快速划船的回合。

    不知道大家聽懂我說的話,如果不懂答案,可以直接把程式粘到pascal裡,然後用單步除錯來看看,會直觀地看到快划船的想法。 總體而言,快速襯裡是區間的連續縮小,以確定某個值在整個序列中的位置。 但是,快速排水的時間效率非常高,即o(n*log2 n)。

    它是所有排序失敗中最快的,因此在學習 pascal 時,最常用的排序方法是快速排名。

    呵呵,上面的段落可能有點難懂,但只要你了解了快速編排程式,應該不是什麼大問題。

  14. 匿名使用者2024-01-18

    二分法: 步驟: 1分解; 2.解決; 3.合併。

    示例:p[1..]10]=

    隨機選擇乙個犀利的游泳者:如銀牌和別針65

    分為 3 個部分,即小於 65 和大於 65。

    對小於 65 和大於 65 的排序。

    我需要說點什麼。

相關回答
12個回答2024-07-27

很高興有你的問題,現在湖人隊主教練禪師有12個總冠軍,公牛隊有2個3連冠,2000年湖人隊有3個總冠軍,湖人隊最近有2個總冠軍,禪師在球員時代在尼克斯隊也拿過乙個,加起來有12個。 拉塞爾以11個冠軍成為球員贏得冠軍最多的球員,幫助凱爾特人隊連續八次奪冠。

13個回答2024-07-27

截至2015年12月30日,西甲歷史上進球最多的梅西,至今已經打進了291個進球。 >>>More

25個回答2024-07-27

應該是孫中山最,她的受歡迎程度毋庸置疑,孫中山最受歡迎女歌手也拿過4屆白石(這個被票淘汰了)和一些資訊:(如果你不相信,可以去驗證,搜尋一下): >>>More

4個回答2024-07-27

我剛剛被乙個認識不久的朋友愚弄了。 看看他們的狀態。 聽聽他們怎麼說。 >>>More

5個回答2024-07-27

國際公尺蘭 歷史上進球最多的球員是 Giuseppe Meaza,得分為258。 >>>More