C語言輸入數按由小到大排序函式呼叫的方法

時間 2021-08-11 18:00:48

1樓:

//程式改為下面,輸入三個數用英文逗號分開。如:3,2,1#include

void swap(int &a, int &b)int main()

2樓:匿名使用者

第一個錯誤,swap函式你定義為有int返回值,但卻沒有return語句

第二個錯誤,你的swap函式實際上只是對形參做交換,對實際的數卻不作交

只有swap函式傳遞數的地址時(引用),才能對數進行真正交換swap函式定義如下:

void swap(int &a, int &b)

3樓:匿名使用者

因為值的交換在函式裡面,交換是無效的,需要用地址的交換#include

int swap(int *a, int *b)int main()

4樓:許詩文

#include

mian()

int f(int *pointer1,int *pointer2,int *pointer3)

int change(int *po1,int *po2)

5樓:倒黴熊

#include

void swap(int *a, int *b) //這裡需要傳地址,值都是單向的。

int main()

c語言:輸入5個數,用呼叫函式的方法,從小到大排序 用簡單點的

6樓:風翼殘念

#include

void sort(float *a, int n)

int i,j,tmp;

for(i=0; ifor(j=0; jif(a[j]>a[j+1])

tmp = a[j];

a[j] = a[j+1];

a[j+1] = tmp;

}void main()

float a[5];

int i;

printf("請輸入五個數(逗號隔開):");

scanf("%f,%f,%f,%f,%f",&a[0],&a[1],&a[2],&a[3],&a[4]);

sort(a,5);

printf("排序後為:");

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

printf("%.2f ",a[i]);

printf("\n");

或者三個數的。

void sort(int *a, int *b, int *c)

int tmp;

if(*a>*b)

對於這樣的自定義sort函式,可以按照定義的規範來呼叫。

二、c語言有自有的qsort函式。

功 能: 使用快速排序例程進行排序。標頭檔案:stdlib.h

原型:void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

引數:1、待排序陣列首地址。

2、陣列中待排序元素數量。

3、各元素的佔用空間大小4 指向函式的指標,用於確定排序的順序,這個函式必須要自己寫比較函式,即使要排序的元素是int,float一類的c語言基礎型別。

7樓:小周愛嘮叨

1、在開頭處定義了兩個指標變數point_1和point_2。但此時他們並未指向任何一個變數,只是提供兩個指標變數,規定他們可以指向整形變數,至於指向哪一個整形變數,要在程式語句中指定。程式第6,7兩行的作用就是使point_1指向a,point_2指向b,此時point_1的值為&a(即a的地址),point_2的值為&b。

2、第10行輸出*point_1和*point_2的值,其中的“*”表示“指向”。*point_1表示“指標變數point_1所指向的變數”,也就是變數a。*point_2表示“指標變數point_2所指向的變數”,也就是變數b。

從執行結果來看他們也就是100和10.

3、程式中有兩處出現*point_1和*point_2,但是兩者含義不同。程式第5行的*point_1和*point_2表示定義兩個指標變數*point_1和*point_2。它們前面的“*”只是表示該變數是指標變數。

程式最後10行中的printf函式中的*point_1和*point_2則表示指標變數point_1和point_2所指向的變數。

8樓:匿名使用者

自定義一個交換兩個數的函式

對5個數進行冒泡法

迴圈執行函式就行了

9樓:系榆

void bubble_sort(int array,int n)}if(1 == flag)

}return;

}呼叫時,n的值為5就可以了,你可以將輸入的資料儲存到長度為5的陣列裡面,然後呼叫這個排序方法,希望可以幫到你,望採納

c語言題.寫一函式,用冒泡法對輸入的一組數按由小到大順序排序(要求形參為陣列),main函式呼叫實現

10樓:匿名使用者

#include

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

sort(s,8);

printf("the sort is:\n");

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

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

c語言編寫一個對一組數進行排序的函式,然後在主函式中呼叫該函式對輸入的若干個整數按從小到大方式排序。

11樓:oh丶很好啊

/* 氣泡排序法 */

#include "stdio.h"

#define size 10

void paixi(int a)

}void main()

;printf("data item in original order \n");

for(i=0;i<=size-1;i++)printf("%4d",a[i]);

paixi(a);

printf("\n data items in ascending order \n");

for(i=0;i<=size-1;i++)printf("%4d", a[i]);

printf("\n");}

12樓:坑沒有罪

#include

#include

void maopao(int *a,int len)}}}int main(void)

;maopao(&a,10);

// int b[10];

int i=0;

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

system("pause");

return 0;

}用的什麼編譯器 ? 如果是devcpp 就是上面的 如果是其他的編譯器就把 system("pause"); 改為 getchar();就可以了。

13樓:匿名使用者

你需要那種排序演算法來排序了?排序有很多演算法的,你這個題目有要求沒,如果沒的話,樓下的冒泡你你就可以用。

c語言程式設計——選擇排序法,要求:由主函式呼叫排序子函式,對n個整數進行從小到大的排序,謝了

14樓:匿名使用者

#include

#define size_n 20 //size_n is the size of the array

void sortfun(int a, int n)}void main()

sortfun(a,size_n); //呼叫排序函式for(int j=0;j

15樓:倒黴熊

#include

void sort(int a,int n) //選擇排序}if(c !=i) //進行交換。}}int main()

;sort(a,10);

int i;

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

getchar();

return 0;}

c語言:呼叫自定義排序函式sort,對輸入的n個數進行從小到大輸出。

16樓:

p[i]就是指標p指向的陣列的下標為i的元素。

c語言用選擇法對陣列中整數按由小到大排序

首先以array 0 作為參照,從左到右掃描,找到最小的資料與array 0 位置交換。接下來以array 1 作為參照,重複上述過程。k i定位參照 k j找到剩下陣列中最小值 k i是為了每次迴圈都從當前項開始呀。k j 不是你說的j k 是為了記錄後面的最小項,以方便替換。 從第i個數開始,比...

c語言輸入數用呼叫函式的方法從小到大排

風翼殘念 include void sort float a,int n int i,j,tmp for i 0 ifor j 0 jif a j a j 1 tmp a j a j a j 1 a j 1 tmp void main float a 5 int i printf 請輸入五個數 逗號...

c 語言程式設計 輸入整數,要求按照由小到大的順序輸出

潮範君 include 標頭檔案 using namespace std void swap int p1,int p2 用於交換2個變數的功能函式 int main int n1,n2,n3 int p1,p2,p3 cout 請依次輸入3個整數 cin n1 n2 n3 p1 n1 p2 n2 ...