程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 冒泡排序 noj-noj一道冒泡排序,不能通過,求大神解答

冒泡排序 noj-noj一道冒泡排序,不能通過,求大神解答

編輯:編程綜合問答
noj一道冒泡排序,不能通過,求大神解答

題目描述
給定輸入排序元素數目n和相應的n個元素,寫出程序,利用內排序算法中冒泡排序算法進行排序,並輸出排序過程中每趟及最後結果的相應序列。

輸入

共兩行,第一行給出排序元素數目n,第二行給出n個元素,1≤n≤400,每個元素值范圍為 [0,100000)

輸出

三個部分
第1部分為兩行,第1行輸出文字“Source:”,第2行給出原始序列;
第2部分,開始輸出文字“Bubble Sort:”,後續輸出簡單選擇排序過程;
第3部分,開始輸出文字“Result”,後續輸出排序結果。
樣例輸入

 7
48 36 68 72 12 48 2

樣例輸出

 Source:
(48 36 68 72 12 48 2)
Bubble Sort:
(36 48 68 12 48 2) 72
(36 48 12 48 2) 68 72
(36 12 48 2) 48 68 72
(12 36 2) 48 48 68 72
(12 2) 36 48 48 68 72
(2) 12 36 48 48 68 72
Result
(2 12 36 48 48 68 72)

 #include<stdio.h>
#define N 400

void init(int a[],int n)
{   int i;
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }

}
void bubberSort(int a[],int n)
{
    int i,j,t,k=1;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(a[j]>a[j+1])
            {
                t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
            }
        }
        putchar('(');
        for(j=0;j<n;j++)
        {
            if(j==0)
            {
              if(i!=n-1-1)
              printf("%d",a[j]);
              else printf("%d)",a[j]);   
            }
            else if(j==n-1-k)
            {
                printf("%c%d",32,a[j]);
                putchar(')');
            }
            else printf("%c%d",32,a[j]);

        }
          k++;
            putchar('\n');
    }

 }
void myPrint(int a[],int n)
{
    int i;
    putchar('(');
    for(i=0;i<n;i++)
    {
         if(i==n-1)
        {
            printf("%d",a[i]);
            putchar(')');
        }
        else printf("%d%c",a[i],32);

    }
    printf("\n");
}  
int main()
{
    int a[N],n;
    scanf("%d",&n);
    init(a,n);
    puts("Source: ");
    myPrint(a,n);
    puts("BubbleSort: ");
    bubberSort(a,n);
    puts("Result: ");
    myPrint(a,n);
    return 0;     
    getchar(); 
 }



顯示答案錯誤
我的代碼怎麼修改才能通過啊
原題鏈接http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1063

最佳回答:


題目說是Bubble Sort,但是在輸出的第二部分說用簡單的選擇排序。。

我按選擇排序寫了一個

var
a:array[1..1000] of longint;
i,j,n,k,l:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
writeln('Source:');
for i:=1 to n do write(a[i],' ');
writeln;
writeln('Bubble Sort:');
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
k:=a[i];a[i]:=a[j];a[j]:=k;
for l:=1 to n do write(a[l],' ');
writeln;
end;
writeln('Result');
for i:=1 to n do write(a[i],' ');
end.

wanmeiwushang
wanmeiwushang
nonprocess
nonprocess
nonprocess
nonprocess
wanmeiwushang
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved