1、首先打開(kāi)編輯軟件,新建一個(gè)c程序空文件,引入標(biāo)準(zhǔn)庫(kù)和主函數(shù),定義一個(gè)QuickSort函數(shù)用來(lái)排序,下面首先編寫(xiě)排序函數(shù)的:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、解放網(wǎng)站維護(hù)、網(wǎng)站推廣。
2、此處用到快速排序思想,通過(guò)一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,即這里用i和j兩個(gè)變量分割數(shù)據(jù),然后一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,接著對(duì)這兩部分?jǐn)?shù)據(jù)分別進(jìn)行比較排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列:
3、接著編寫(xiě)主函數(shù),主函數(shù)中定義一個(gè)數(shù)組,然后用scanf接受數(shù)組,用戶輸入10個(gè)數(shù)以后,會(huì)將數(shù)存在數(shù)組array中,然后調(diào)用上面處理排序的函數(shù),函數(shù)的輸入就是剛才輸入的數(shù),最后在把排序的結(jié)果輸出即可:
4、最后編譯運(yùn)行,輸入10個(gè)數(shù),最后控制臺(tái)輸出了排序的結(jié)果,證明程序的邏輯是沒(méi)有問(wèn)題的。以上就是C語(yǔ)言輸入10個(gè)數(shù)排序的演示:
#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);
}
}
c語(yǔ)言 函數(shù)排序輸出
c語(yǔ)言 函數(shù)排序輸出,C語(yǔ)言 要求用戶錄入5個(gè)數(shù)字,用函數(shù)來(lái)完成升序排序輸出!...
?
張一弘
轉(zhuǎn)載
關(guān)注
0點(diǎn)贊·1043人閱讀
#include
int accept(int m){
int a[m];
int i;
printf("請(qǐng)輸入5個(gè)數(shù)字:");
for(i=0;i
scanf("%d",a[i]);
}
return sort(a);
}
int sort(int a[5]){
int n=5;
int i,j;
int temp;
for(i=0;i
for(j=0;j4-i;j++){
if(a[j]a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
return list(a);
}
int list(int a[5]){
int i;
int m=5;
printf("輸入的5個(gè)數(shù)升序排序后結(jié)果為:");
for(i=0;i
printf("%d",a[i]);
}
}
int main(){
accept(5);
return 0;
}
輸入scanf是用的變量地址
x
y
z
輸出時(shí),是用的變量x,
y,
z
所以sort3要改變這3個(gè)變量地址(指針)指向的值
#include
stdio.h
void
sort3(double
*x,
double
*y,
double
*z);
int
main(int
argc,
char
*argv[]){
double
x,y,z;
if(scanf("%lf
%lf
%lf",x,y,z)==3){
sort3(x,y,z);
printf("%lf\n%lf\n%lf\n",x,y,z);
}else{
fprintf(stderr,"Error:
Incorrect
format\n");
}
return
0;
}
void
sort3(double
*x,
double
*y,
double
*z){
double
a
=
*x,
b
=
*y,
c
=
*z;
printf("a:%f
b:%f
c:%f\n",a,
b,
c);//testing
if(*x
*y)
{
a
=
*y;
b
=
*x;
}
if(c
a)
{
*x
=
c;
*y
=
a;
*z
=
b;
}
else
if(c
b)
{
*x
=
a;
*y
=
c;
*z
=
b;
}
else
{
*x
=
a;
*y
=
b;
*z
=
c;
}
printf("sorted
numbers:\n");//testing
printf("%f
%f
%f\n",*x,
*y,
*z);//testing
}