我想用C語言的指標和函式實現氣泡排序,輸入一就從小到大排序否則就大到。給陣列賦值然後呼叫函式

2021-03-22 00:00:20 字數 6604 閱讀 2852

1樓:c呀可可

沒聽懂你想要表達的意思。所以我把你有可能需要的都貼上:(**是以前寫的,gcc編譯器。有的部分省略了,自行補上。)

排序一維陣列(從大到小,普通自定義函式)

輸入:1,2,3,4,5,6,7,8,9,10輸出:10,9,8,7,6,5,4,3,2,1排序一維陣列(從大到小,指標函式)

輸入:1,2,3,4,5,6,7,8,9,10輸出:10,9,8,7,6,5,4,3,2,1排序二維陣列(沒用函式)

輸入:1  2 3 4

4 2 3 1

4 1 3 2

3 2 4 1

輸出結果為:

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

c語言:編寫函式用氣泡排序法對陣列中的資料進行從小到大的排序.

2樓:匿名使用者

int i,j,temp;

for(i=0;ia[j+1])}}

之間寫這個

c語言程式設計。。。輸入一陣列,按從大到小的順序排列(提示:可用選擇排序、氣泡排序或插入排序的任意一種)。 10

3樓:劉海桃的女兒

選擇排序:選擇法排序是一種簡單的容易實現的對資料排序的演算法。

以整形陣列元素為例,有陣列a[10](以c語言為例描述),即a[0],a[1],…,a[8],a[9](假設其元素均互不相同)。要求對其元素排序使之遞增有序。

首先以乙個元素為基準,從乙個方向開始掃瞄,比如從左至右掃瞄,以a[0]為基準。

接下來從a[0],…,a[9]中找出最小的元素,將其與a[0]交換。

然後將基準位置右移一位,重複上面的動作,比如,以a[1]為基準,找出a[1]~a[9]中最小的,將其與a[1]交換。

一直進行到基準位置移到陣列最後乙個元素時排序結束(此時基準左邊所有元素均遞增有序,而基準為最後乙個元素,故完成排序)。

以下為乙個用c描述的函式實現上述排序:

void sort(int array,int n)

}printf("排序結果:");

for( i = 0; i < 10; i ++ ) //依次輸出排序結果

printf("%d\t",a[ i ]);

printf("\n");

}pascal為例子

procedure bubble_sort(var l:list);

vari,j:position;

begin

for i:=first(l) to last(l)-1 do

for j:=first(l) to last(l)-i do

if l[j]>l[j+1] then 4 swap(l[j],l[j+1]);

//交換l[j]和l[j+1]

end;

下面使用c++語言編寫

#include

void main()

cout<

}c語言中的排序方法選擇方法是首先從要選擇的數中選擇最大(或最小)的數,將它放在第乙個位置,然後從剩下的數中選擇最大(或最小)的數放在第二個位置,直到最後從剩下的兩個數中選擇最大(或最小)的數放在倒數第二個位置,剩下的乙個數放在最後位置,完成排序。

4樓:匿名使用者

乙個乙個的進行比較,設乙個min,並把第乙個值賦給它,當遇到比他小的數的時候進行互換,直到最後。

5樓:匿名使用者

#include

main() }

for(i=1;i<11;i++)

printf("%d\n",a[i] );}

6樓:_要掵

可以申請乙個臨時變數

來幫助排序。

int a[5] = ;

int temp; //臨時變數

int i,j;

for(i=0;i<5;i++)

for(j=0;j<4;j++)}

c語言 使用氣泡排序將一維陣列a中的n個元素公升序排列

7樓:59分粑粑

方法和詳細的操作步驟如下:

1、第一步,開啟c檔案,定義一組序列和要排序的各種變數,然後處理排序邏輯,具體的**見下圖,轉到下面的步驟。

2、第二步,完成上述步驟後,氣泡排序的邏輯是一組數字從第乙個值開始,如果兩個相鄰數字的順序與期望的順序不同,則會交換兩個數字的位置。 重複此過程,直到最後乙個數字。如果需要交換,則排序完成,實現的**見下圖,轉到下面的步驟。

3、第三步,完成上述步驟後,編譯並執行程式,就獲得了想要的結果了,見下圖。這樣,就解決了這個問題了。

8樓:離歌亮仔仔

我這給出乙個不用指標,不用手動分配記憶體空間的相對 精簡易懂 的方法

#include

int main()

}printf("排序結果:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

return 0;}

9樓:2013努力實現

#include

#include

int main()

printf("請為%d個元素賦值如 1 2 3\n",n);

for(i=0;ip[j+1])

}printf("排序結果!\n");

for(i=0;i

printf("%5d",p[i]);

printf("\n");

return 0;}

10樓:回歸╮幼稚

#include

int main()

{int t,i,j,a[100],n;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

for(i=1;i

11樓:示申僉

#include "stdio.h"

int main()

for(i=0;i結果:

用c語言程式設計:輸入5個整數,利用氣泡排序法,從小到大排序後輸出。

12樓:匿名使用者

#includevoid main()}}printf("排序後:");for(int k = 0;k<=4;k++) printf("%d ",a[k]);}

截圖壞了,自己執行吧

13樓:匿名使用者

c,語言,這是有c語言程式設計的問題

14樓:匿名使用者

#include

void main()

int temp;

for(i=0;i<5-1;i++)

printf("\n");}

編寫c語言程式,把乙個陣列按從小到大的次序排列起來

15樓:乙個青年

源程式以及演算法注釋如下:

#define _crt_secure_no_warnings//vs編譯環境需要進行巨集定義,vc6.0可忽略

#include//輸入輸出標頭檔案

int main()

for (n = 0; n <= 8; n++)//要進行(10-1)組比較

for (j = 0; j <= 8 - n; j++)//每組進行(10減第幾組)次比較

if (new_number[j] < new_number[j + 1])//比較大小並將大的賦給前面的陣列

}printf("min-->max:\n");//文字提示

for (m = 0; m <= 9; m++)//依次從小到大輸出

printf("%d ", number[m]);//輸出元素

printf("\n");

printf("max-->min:\n");//文字提示

for (m = 0; m <= 9; m++)//依次從大到小輸出

printf("%d ", new_number[m]);//輸出元素

printf("\n");

return 0;

}程式執行結果如下:

擴充套件資料:

其他簡單實現程式:

#include

int main()

;int i,j,temp;

for(i = 0;i<10;i++)

for(i = 0;i<10;i++)}}

for(i = 0;i<10;i++)

printf("%d ",a[i]);

return 0;}

16樓:4747哦

選擇法#include

main()

;int i,j,temp;

for(i=0;i<7;i++)

for(j=i+1;j<8;j++)

if(a[i]大

於號從高到低排序

for(i=0;i<8;i++)

printf("%d ", a[i]);

}起泡法

#include "stdio.h"

main()

}p=a;

printf("最小%d 最大%d\n",*p,*(p+9));

for(p=a;p-a<10;p++) //輸出排序後的10個數printf("%d ",*p);

}#include "stdio.h"

main()

void fun(int *p)

printf("最小%d 二大%d\n",*p,*(p+8));

for(i=0;i<10;i++)

printf("%d ",*p++); //移動指標p}#include

void sort(int *a,int n)}main()

17樓:織毛衣的手手

#include

int* bubblesort(int* ary, int length)}}

return ary;}

18樓:悠悠缺刻鬧

簡單,留郵箱我寫乙個發你參考

c語言用指針對n個整數進行排序,並將結果順序數去,要求用乙個函式實現,求完整過程。 10

19樓:2b丶xiao年輕

void sort(int *a,int n)//傳入陣列 和長度}}}

20樓:琦玉

//by cainiaoqi

#include

void sort(int *array,int n);

void print(int *array,int n);

void main() ;

int i=0;

printf("排序前:\n");

print(array,10);

sort(array,10);

printf("排序後:\n");

print(array,10);

}//從大到小排序

void sort(int *array,int n) {int i=0,j=0;

int temp=0;

for(i=0; i

for(j=i; jarray[i]) {                  //改為array[j]

c語言中用氣泡排序法排列任意輸入的10個數,用程式輸出從小到大的排列具體過程,謝謝。。

21樓:匿名使用者

//回答補充,暈,原來是這樣的過程,我把以前的過程刪除了,下面:

#include

#define n 10

int main()

printf("\n");

n++;}}

}printf("排序過程結束\n\n");

//結束冒泡

printf("排序結果:\n");

for(i=0;i

printf("\n");

return 0;}

22樓:匿名使用者

#include

using namespace std;

int main()

for(i=0;i<10;i++)

cout<<'\t'<輸出

排列後資料

return 0;}

23樓:晏鳶

1.冒泡法:

這是最原始,也是眾所周知的最慢的演算法了。他的名字的由來因為它的工作看來象是冒泡:

#include

void bubblesort(int* pdata,int count) }

} }void main()

; bubblesort(data,7);

for (int i=0;i<7;i++)cout<

C語言中怎麼實現函式之間的跳轉

最簡單的方式就是在你呼叫的函式後面加跳轉語句 例如 goto a 然後你在你main函式的定義變數的後 回麵加上a 就行了雖答然不推薦用這種方式 但這是最簡單的。你也可以用其他的例如 while for do while 等迴圈語句寫這個 在main中呼叫函式a後,在回到呼叫函式a之前是嗎?int ...

你好,謝謝你的回答,我想用c語言來實現,該怎麼程式設計呢?謝謝啦

include int main int argc,char argv 如果找到等於 temp 的數字,temp 不再存入陣列if data j temp 否則將 temp 存入陣列的適當位置 else 接著在騰出的位置中存入temp 位置的下標為 j 1 data j 1 temp data p ...

C 定義函式,有引數,實現對實參值的交換,用指標和引用2種方式實現

如下 void cmp int a,int b void cmp int a,int b 飲冰軒者 include main 這是引用,指標和這個差不多 include main 這是指標,求採納 void swap1 int a,int b 指標 void swap2 int a,int b 引用...