你這個(gè)就是常說的意大利面 5個(gè)以上的排序還是弄個(gè)數(shù)組,用循環(huán)排序
10年積累的網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有鹿邑免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
#include stdio.h
#define N 5
int main(void)
{
float farr[N];
float t;
int i,j;
for(i=0;iN;i++)
{
scanf("%f",farr[i]);
}
for(i=0;iN-1;i++)
{
for(j=i+1;jN;j++)
{
if(farr[i]farr[j])
{
t=farr[i];
farr[i]=farr[j];
farr[j]=t;
}
}
}
for(i=0;iN;i++)
{
printf("%f\t",farr[i]);
}
return 0;
}
#include
int
main()
{
int
number[5]
=
{0};//存儲(chǔ)五個(gè)數(shù)
int
cur
=
0;//當(dāng)前要比較的數(shù)的下標(biāo),不能是float
float
max
=
number[0];//當(dāng)前最大的數(shù)值,初始為數(shù)組中第一個(gè)數(shù)
int
index
=
0;//當(dāng)前最大數(shù)值在數(shù)組中的位置
printf("**********尋找最大值***********\n");
//獲得五個(gè)數(shù)
while(index
5)
{
printf("請(qǐng)輸入第%d個(gè)數(shù):",
index+1);//這里
scanf("%d",number[index]);
index++;/////////////////////////////////這里
}
//
index=0;
while(cur
5)
{
if
(max
number[cur])//當(dāng)這個(gè)數(shù)比前面數(shù)中最大的數(shù)還要大時(shí)就替換掉//////////////////////////////////////////
{
max
=
number[cur];//////////////////////////////cur
非index
index
=
cur;
}
cur++;
}
printf("最大值是數(shù)組中第%d個(gè)數(shù),值為%0.6f\n",
index
+
1,
max);
getch();
return
0;
}
//冒泡算法
int?num[5];?
//輸入
for?(int?i?=?0;?i??5;?i++)
{
scanf("%d",?(num[i]));
}
bool?fin?=?true;
while(con)
{
con?=?false;
//如果相鄰兩個(gè)數(shù)前一個(gè)比后一個(gè)小就交換
for?(int?i?=?0;?i??4;i++)
if?(num[i]??num[i?+?1])
{
int?n?=?num[i];
num[i]?=?num[i?+?1];
num[i?+?1]?=?n;
con?=?true;
}
//如果相鄰兩個(gè)數(shù)前一個(gè)都大于等于后一個(gè)con就會(huì)等于false退出循環(huán)
}
//輸出
for?(int?i?=?0;?i??5;?i++)
{
printf("%d",?num[i]);
}
#includestdio.h
void?sort(float?*a,?int?n)
{
int?i,j,tmp;
for(i=0;?in-1;?i++)
for(j=0;?jn-i-1;?j++)
if(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("請(qǐng)輸入五個(gè)數(shù)(逗號(hào)隔開):");
scanf("%f,%f,%f,%f,%f",a[0],a[1],a[2],a[3],a[4]);
sort(a,5);
printf("排序后為:");
for(i=0;?i5;?i++)
printf("%.2f?",a[i]);
printf("\n");
}
或者三個(gè)數(shù)的。
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;
}
擴(kuò)展資料:
C語言中沒有預(yù)置的sort函數(shù)。如果在C語言中,遇到有調(diào)用sort函數(shù),就是自定義的一個(gè)函數(shù),功能一般用于排序。
一、可以編寫自己的sort函數(shù)。
如下函數(shù)為將整型數(shù)組從小到大排序。void sort(int *a, int l)//a為數(shù)組地址,l為數(shù)組長(zhǎng)度。
{ ?
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;
? ? ?
}
?
}
}
對(duì)于這樣的自定義sort函數(shù),可以按照定義的規(guī)范來調(diào)用。
二、C語言有自有的qsort函數(shù)。
功 能: 使用快速排序例程進(jìn)行排序。頭文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
參數(shù):
1、待排序數(shù)組首地址。
2、數(shù)組中待排序元素?cái)?shù)量。
3、各元素的占用空間大小4 指向函數(shù)的指針,用于確定排序的順序,這個(gè)函數(shù)必須要自己寫比較函數(shù),即使要排序的元素是int,float一類的C語言基礎(chǔ)類型。
//#include "stdafx.h"http://vc++6.0加上這一行.
#include "stdio.h"
void main(void){
int a[5],i,j,k;
printf("Type 5 integers...\n");
for(i=0;i5;scanf("%d",a+i++));
for(i=0;i5;i++){
for(k=i,j=k+1;j5;j++)
if(a[k]a[j]) k=j;
if(k!=i){
j=a[k];
a[k]=a[i];
a[i]=j;
}
}
for(i=0;i5;printf("%d ",a[i++]));
printf("\n");
}