1樓:
你可以利用 c 標準庫 stdlib.h 裡的 qsort( ) 完成任何型別的陣列的快速排序:
#include
#include
int compare( const int *a, const int *b )
int main( )
呼叫 qsort( ) 只需要傳入四個引數:
1)陣列指標:指向要排序的陣列
2)陣列的元素個數
3)陣列的元素位元組長度
4)函式指標:指向我們定義的一個比較兩個元素大小的函式
若是要 qsort( ) 做由小到大的排序,我們定義的函式的返回值和相應的條件必須是:
返回值 條件
*****= *****
< 0 *a < *b
0 *a == *b
> 0 *a > *b
要達到以上的要求其實就只需寫 「*a - *b」 。
而若是要 qsort( ) 做由大到小的排序,把 *a 和 *b 的位置換一換就行了。
2樓:長鯨高淑穆
4個整數的排序,有使用單個變數和使用陣列二種方法實現。
使用單個變數的方法:
#include
intmain()
if(a>c)
if(a>d)
if(b>c)
if(b>d)
if(c>d)
printf("%d
%d%d
%d\n",a,b,c,d);
return0;}
使用陣列和迴圈的方法:
#include
intmain()
for(i=0;i<4;i++)
//輸出4個資料
printf("%d
",a[i]);
printf("\n");
return0;}
3樓:仝秀花來緞
用冒跑法寫:
main()
for(i=1;i<=4;i++)
printf("%d",a[i]);
/*輸出從小到大的四個數*/}
4樓:龍車花卉
#include "stdafx.h"
void mysort(int* pdata,int count)
c語言程式設計題:輸入4個整數,要求按由小到大順序輸出怎麼編啊?
5樓:小心_不在犯錯
#include
int main()
if (a > c)
if (a > d)
if (b > c)
if (b > d)
if (c > d)
printf("由小
dao到大輸專
出屬:%d %d %d %d\n",a,b,c,d);
return 0;}
6樓:黑白say晚安
一、氣泡排序,**和執行結果如圖所示。
重複地走訪過要排序的元
素列,依次專
比較兩個相鄰的元素,如果屬他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
二、選擇排序,**和執行結果如圖所示。
思想:選擇排序,讓陣列中的每一個數,依次與後面的數進行比較,如果前面的數大於後面的數,就進行位置的交換。換個說法,選擇排序:
第一個數依次與後面的數比較,第一次比較完之後最小的數在最前面 。
7樓:加百列
利用函式的模組copy化設計。
1、完成整體bai函式格局,輸入、du排序、輸zhi出。
2、輸入函式**如下
dao:
3、排序函式**如下:
4、輸出函式**如下:
5、執行結果:
8樓:圖圖的大耳朵鴨
使用氣泡排序法進行程式設計:
解釋:1.第一個for迴圈:利用陣列迴圈輸入4個變數。
2.第二個回for迴圈:該迴圈的意思是答如果a[0]>a[1]的話,兩個變數的值交換,利用迴圈依次比較。
要注意的是i<3,因為其中有i+1,i最大取到2,也就是i+1最大取到3才正確。
3.第三個for迴圈:利用迴圈依次輸出排序後的陣列,每輸出一個加一個空格以便於區分。
9樓:
最愚蠢的方法:
# include
main()
; if(a>d) ;
if(b>d) ;
if(c>d) ;
printf("%5.2f,%5.2f,%5.2f,%5.2f",a,b,c,d);
}冒泡法:
# include
main()
}for(i=0;i<4;i++) /* 分別輸出排完後的4個數 */
printf("%d ",a[i]);}
10樓:員施濯馨逸
將四個數存到bai數du組中,然後排序即zhi可。
排序dao後,再利用循版
環輸出。
**權:
#include
int main()
}for(i = 0; i < 4; i ++)printf("%d,",a[i]);}
11樓:戰殤弒魂
#include
#include
void main()
printf("the sorted numbers:\n");//列印出分類後的結果
for(i=1;i<=45;i++)
printf("%d ",a[i]);
system("pause");//螢幕停留在當前結果,以免螢幕一閃而過,無法看到執行結果}
12樓:浪_鷹
#include
main()
printf("您輸入的四個整數由小到大輸入為:\n")for(i=0;i<4;i++) //迴圈輸出printf("%d ",a[i]);
getchar(); //停止螢幕
getchar();
}你可以上機執行一下,結果是對的,有什麼地方不明白的再聯絡我,只要我會的一定告訴你的!!!
13樓:匿名使用者
maim()
for(i=1;i<5;i++)
for(j=i+1;j<5,j++)
printf("排序後\n");
for(i=1;i<5;i++)}
c語言 輸入4個整數,按要求從小到大的順序輸出 ,我寫的程式**有問題?
14樓:匿名使用者
親,哪有你這樣比較的。首先是輸入4個整數,您直接定義成float浮點型,這就不對。最好是把這些數裝入一個陣列內,再排序。
int main()
}for(count = 0; count < 4; count++)
return;}
15樓:
邏輯有漏洞。a>b、a>c、a>d成立時都有交換這沒錯,但某一項不滿足呢?比如a>c不滿足,那就是c<=a,可是後面再也沒有出現對a怎麼處理。
參與比較的數多於3個這樣就不好處理了,還是用陣列儲存,排序比較好。
16樓:黑乎乎
用迴圈結構比較,不要用這樣傻的方法,參考一下#include
int main()
}for(i=0;i<=3;i++)
printf("%d\t",a[i]);
return 0;}
17樓:常玉標
#include
void main()
if(a>c)
if(a>d)
if(b>c)
if(b>d)
if(c>d)
printf("%f,%f,%f,%f\n",a,b,c,d);}
用c語言編寫一個程式,輸入4個整數,按從大到小順序輸出!
18樓:
冒泡法是好,不過要不用陣列的
其實只要能想出輸出最大和最小兩個的辦法!就有辦法自己想出四個排列的,最多複雜一點.
建議你呼叫子函式,利用冒泡法的思路
com(int a,int b)
}然後你就只要聯絡三次呼叫就可以了
也就是每兩個都按從大到小排列,整個就是重大到小
19樓:匿名使用者
program 程式名(input,output);
var a,b,c,d,t: real;
begin
write('input a, b,c=');
readln(a,b,c,d);
if a>b then
begin
t:=a; a:=b; b:=t
end;
if a>c then
begin
t:=a; a:=c; c:=t
end;
if a>d then
begin
t:=a; a:=d; d:=t
end;
if b>c then
begin
t:=b; b:=c; c:=t
end;
if b>d then
begin
t:=b; b:=d; d:=t
end;
if c>d then
begin
t:=c; c:=d; d:=t
end;
writeln('a,b,c,d:',a:6, b:6, c:6, d:6);
readln
end.
參考演算法自己編一個c語言的吧,很容易的^_^
20樓:匿名使用者
#include "stdio.h"
main()
for(i=0;i<=3;i++)
printf("%d\t",a[i]);}
21樓:瑀瑀獨行
同意樓上的氣泡排序法
這是標準演算法
22樓:匿名使用者
是標準演算法也是最爛的演算法,快速排序是共認目前最好的
c語言輸入整數按要求從小到大的順序輸出
親,哪有你這樣比較的。首先是輸入4個整數,您直接定義成float浮點型,這就不對。最好是把這些數裝入一個陣列內,再排序。int main for count 0 count 4 count return 邏輯有漏洞。a b a c a d成立時都有交換這沒錯,但某一項不滿足呢?比如a c不滿足,那就...
c語言由鍵盤輸入正整數,C語言!!!!!!!!!!!由鍵盤輸入一個正整數,判斷該數是否為平方數,是輸出Y,否則輸出N
思路 將該數開平方得到一個數 看是不是整數,如果是說明是平方數,否則內不是 如下 include include int main else return 0 希望可以幫到你,如有疑問歡迎追問 樓主來你好。很簡單 自 include include int main printf c n pow i...
c語言編寫函式要求輸入整數n,將陣列下標到n的數都移到陣列末尾
只錯了一句 include void fun int w,int p,int n int main i,n 3,p 10 p為陣列長度 fun a,p,n for i 0 i 10 i printf 3d a i 核心語句 新陣列 原陣列.slice n 1 concat 原陣列.slice 0,n...