當前位置:首頁 » 編程語言 » c語言函數調用五位數排序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言函數調用五位數排序

發布時間: 2023-07-06 17:44:39

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

#include<stdio.h>

voidsort(float*a,intn)

{

inti,j,tmp;

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

for(j=0;j<n-i-1;j++)

if(a[j]>a[j+1])

{

tmp=a[j];

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

a[j+1]=tmp;

}

}

voidmain()

{

floata[5];

inti;

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(" ");

}

或者三個數的。

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

{

int tmp;

if(*a>*b){

tmp = *b;

*b = *a;

*a = tmp;

}

if(*a>*c){

tmp = *c;

*c = *a;

*a = tmp;

}

if(*b>*c){

tmp = *c;

*c = *b;

*b = tmp;

}

return;

}

(1)c語言函數調用五位數排序擴展閱讀:

C語言中沒有預置的sort函數。如果在C語言中,遇到有調用sort函數,就是自定義的一個函數,功能一般用於排序。

一、可以編寫自己的sort函數。
如下函數為將整型數組從小到大排序。void sort(int *a, int l)//a為數組地址,l為數組長度。

{

int i, j;

int v; //排序主體

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

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

{

if(a[i] > a[j])//如前面的比後面的大,則交換。

{

v = a[i];

a[i] = a[j];

a[j] = v;

}

}

}

對於這樣的自定義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語言基礎類型。

⑵ C語言如何用調用函數的方法把5個數字從小到大排序

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所指向的變數。