錯(cuò)的地方很多。。改了下,
成都創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、輝南網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開(kāi)發(fā)、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為輝南等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
#includestdio.h
int sort(int num[5]);
void main()
{
int numm[5],i,a;
for (i=0;i5;i++)
scanf("%d",numm[i]);
sort(numm); //調(diào)用排序
for (i=0;i5;i++)
printf("%d ",numm[i]);
}
int sort(int num[5])
{
int m,n,t;
for (m=0;m4;m++)
for(n=m+1;n5;n++)//冒泡排序
{
if (num[m]num[n])
{
t=num[n];
num[n]=num[m];
num[m]=t;
}
}
return 1;
}
#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)隔開(kāi)):");
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ǔ)言中沒(méi)有預(yù)置的sort函數(shù)。如果在C語(yǔ)言中,遇到有調(diào)用sort函數(shù),就是自定義的一個(gè)函數(shù),功能一般用于排序。
一、可以編寫(xiě)自己的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ī)范來(lái)調(diào)用。
二、C語(yǔ)言有自有的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ù)必須要自己寫(xiě)比較函數(shù),即使要排序的元素是int,float一類(lèi)的C語(yǔ)言基礎(chǔ)類(lèi)型。
先回答下第一個(gè)問(wèn)題,子函數(shù)的實(shí)現(xiàn)方法可以放在使用它的主函數(shù)或者其它子函數(shù)后面,但是你的定義一定要在使用它之前;不然編譯器怎么知道你用的函數(shù)square是什么,這就是我們經(jīng)常包含頭文件的一個(gè)目的,頭文件是一些函數(shù)定義或者預(yù)編譯命令。
修改是在#includestdio.h后面加
int square(int num);
第二個(gè)問(wèn)題:num是在main定義是可以在main作用域內(nèi)直接使用,或者當(dāng)做參數(shù)傳遞給子函數(shù),你的問(wèn)題num為什么可以在子函數(shù)中用,首先你子函數(shù)的num并非main里的num只是你把他們名字寫(xiě)成一樣了;main里num是通過(guò)值傳遞給子函數(shù)的num,實(shí)際他們兩個(gè)num的內(nèi)存地址是不一樣的,你子函數(shù)換個(gè)名字去理解一下。