如果按你的方法來(lái)比較大小,而且是7個(gè)數(shù)字,也就是a~g,你后面少比較了g,而且最后的j也未必是最大,需要改為:
成都創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、市中網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、商城網(wǎng)站開發(fā)、集團(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)站開發(fā)制作服務(wù)。
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //這里讀到g即可,后面沒(méi)用的
a = max(a,b); //不能把g的值覆蓋了,7個(gè)數(shù),g還有存儲(chǔ)數(shù)據(jù)呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //還要和g比較
h = max(a,h); //接著還要比較a和h誰(shuí)大
j = max(h,j); //這個(gè)才是最后結(jié)果,最大的一個(gè)
printf("abcdef da shi%d",j);
getch();
}
如果要比較大小的數(shù)比較多,建議使用數(shù)組存儲(chǔ),用個(gè)for循環(huán)就搞定了,如下:
#include stdio.h
void main()
{
int i, a[7], max = -32768;
for (i = 0; i 7; i++)
{
scanf ("%d", a[i]);
if (a[i] max) max = a[i];
}
printf ("max number is %d\n", max);
}
思路:如果利用if進(jìn)行三個(gè)數(shù)a,b,b的排序,則先利用if判斷a和b的大小,把小數(shù)賦值給a大數(shù)賦值給b,再利用if判斷c和b的大小,把小數(shù)賦值給b大數(shù)賦值給c,則c就是最大值,最后比較a和b的大小,把小數(shù)賦值給a大數(shù)賦值給b,則a就是最小數(shù),b是中間值,輸出a,b,c就是排序后數(shù)。
參考代碼:
#include?stdio.h
int?main()
{
int?a,b,c,t;
scanf("%d%d%d",a,b,c);?????
if(ab)//前判斷a和b的大小?
{t=b;b=a;a=t;}
if(bc)//再判斷b和c的大小?
{t=b;b=c;c=t;}
if(ab)//最后判斷a和b的大小?
{t=a;a=b;b=t;}
printf("%d%d%d",a,b,c);
return?0;
}?
/*
輸出:
5?1?9
159
*/
#includestdio.h
#define?N?100
void?paixu(int?*,?int?*,?int);//聲明函數(shù)
int?main()
{
int?a[N],c[N];
int?i,n=0;
printf("請(qǐng)輸入n個(gè)整數(shù):");
for(i=0;;i++)
{
scanf("%d",a[i]);
n++;
if(getchar()=='\n')
break;
}
paixu(a,?c,?n);//調(diào)用函數(shù),數(shù)組只需給出數(shù)組名
return?0;
}
void?paixu(int?a[N],int?c[N],?int?n)
{
int?i,j,s=0;
for(i=0;in;i++)
{
c[i]=0;
}
for(i=0;in;i++)
for(j=i+1;jn;j++)
{
if(a[i]==a[j])
c[i]=1;
}
for(i=0;in;i++)
{
s=1;
for(j=0;jn;j++)
{
if(c[j]==0a[i]a[j])
{
s++;
}
}
printf("%d?",s);
}
}
#include?stdio.h
#include?string.h
const?int?MAXLEN?=?100;
void?mysort(char?s[][MAXLEN],int?n)?{
int?i,j,k;
char?tmp[MAXLEN];
for(i?=?0;?i??n?-?1;?++i)?{
k?=?i;
for(j?=?i?+?1;?j??n;?++j)?{
if(strcmp(s[k],s[j])??0)?k?=?j;
}
if(i?!=?k)?{
strcpy(tmp,s[k]);
strcpy(s[k],s[i]);
strcpy(s[i],tmp);
}
}
}
int?main()?{
char?s[5][MAXLEN];
int?i;
for(i?=?0;?i??5;?++i)?{
printf("輸入字符串(%d/%d):",i?+?1,5);
scanf("%s",s[i]);
}
printf("排序前:\n");
for(i?=?0;?i??5;?++i)
printf("%s\n",s[i]);
mysort(s,5);
printf("\n排序后:\n");
for(i?=?0;?i??5;?++i)
printf("%s\n",s[i]);
return?0;???
}
#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ǔ)言中沒(méi)有預(yù)置的sort函數(shù)。如果在C語(yǔ)言中,遇到有調(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ī)范來(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ù)必須要自己寫比較函數(shù),即使要排序的元素是int,float一類的C語(yǔ)言基礎(chǔ)類型。
網(wǎng)站名稱:c語(yǔ)言用函數(shù)排大小 c語(yǔ)言如何排大小
URL分享:http://chinadenli.net/article6/dodieog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、營(yíng)銷型網(wǎng)站建設(shè)、域名注冊(cè)、云服務(wù)器、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)