⑴ c語言編程: 將一組數按從大到小的順序排序
#include <stdio.h>
main()
{
int x;
printf("請輸入要排序數字個數:");
scanf("%d",&x);
int i,j,k,a,b,num[x];
printf("輸入數據:");
for(i=0;i<x;i++)
scanf("%d",&num[i]);
for(j=0;j<x;j++)
{
for(k=j+1;k<x;k++)
if(num[k]>num[j])
{
a=num[j];
num[j]=num[k];
num[k]=a;
}
}
for(b=0;b<x;b++)
printf("%d ",num[b]);
return 0;
}
(1)c語言實現數字排序擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。
⑵ C語言數字排序
輸入scanf是用的變數地址
&x
&y
&z
輸出時,是用的變數x,
y,
z
所以sort3要改變這3個變數地址(指針)指向的值
#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
}
⑶ 用c語言編寫:實現一個用戶輸入的數字進行排序的程序。
#include <stdio.h>
void main()
{
int j,a[100],k,x;
int num=0,i=0;
printf("如果你想結束數字的輸入,請輸入-1\n");
printf("請輸入數字");
scanf("%d",&x);
while(x!=-1)
{
a[num]=x;
num=num+1;
if(num>=10){printf("你最多隻能輸入100個數字\n");break;}
printf("請輸入數字");
scanf("%d",&x);
}//輸入數據,並且存到數組a中
printf("1----按升序排序\n");
printf("2----按降序排序\n");
printf("請輸入你的選擇:");
scanf("%d",&k);
while(k>2 || k<1)
{
printf("你的輸入有誤,請從新輸入:");
printf("1----按升序排序\n");
printf("2----按降序排序\n");
scanf("%d",&k);
}
if(k==1)
{
for(i=0;i<num-1;i++)
for(j=i+1;j<num;j++)
if (a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
else
{
for(i=0;i<num-1;i++)
for(j=i+1;j<num;j++)
if (a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
printf("排序的結果\n");
for(i=0;i<num;i++)
printf("%d\n",a[i]);
}
⑷ 如何用C語言設計程序排列6個數字的大小順序
排序數組可以使用冒泡演算法:如果前一個數據比後一個大,則交換。
{
int i,j,t,a[6];
printf("Please input 6 integers: ");
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++) /* 冒泡法排序 */
for(j=0;j<6-i-1;j++)
if(a[j]>a[j+1])
{t=a[j];/* 交換a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}
優點:
簡潔緊湊、靈活方便:C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
以上內容參考:網路-c語言程序設計
⑸ C語言中將三個數字進行排序的幾種寫法
方法1:用3個變數存放3個數字,按從大到小的順序排:
int a,b,c,tmp;
printf("請輸入3個數字:");
scanf("%d%d%d",&a,&b,&c);
if(a<b)//如果a比b小,交換a和b的值,使a存放大的數字
{
tmp=a;
a=b;
b=tmp;
}
if(a<c)//如果a比c小,交換a和c的值,使a存放大的數字
{
tmp=a;
a=c;
c=tmp;
}
if(b<c)//如果b比c小,交換b和c的值,使b存放大的數字
{
tmp=b;
b=c;
c=tmp;
}
printf("按照從大到小的順序為:%d,%d,%d ",a,b,c);
方法2:用數組存放3個變數,用冒泡排序的方法進行排序
int i=0,j=0,tmp=0,a[3];
printf("請輸入3個數字:");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<2;i++)
for(j=0;j<2-i;j++)
if(a[i]<a[i+1])//按照從大到小排列
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
printf("按照從大到小的順序為:");
for(i=0;i<3;i++)
printf("%d ",&a[i]);
printf(" ");
⑹ C語言:對輸入的十個數進行從小到大排序
1、首先打開編輯軟體,新建一個c程序空文件,引入標准庫和主函數,定義一個QuickSort函數用來排序,下面首先編寫排序函數的:
⑺ C語言對N個數進行排序
!!!!!!!!
!!!!!!!!
!!!!!!!!
註:c語言中可以將數組長度定義為變數,只是這種方法在vs中編譯不能通過,但在更為標準的dev中以及gcc中完全可以編譯通過!
一定要給分啊!自己寫的!
#include"stdio.h"
#include"conio.h"
int
main()
{
int
length;
printf("請輸入要排序的數字個數:\n");
scanf("%d",&length);
int
data[length],i;
void
mbquicksort(int
*imput,int
start,int
end);
printf("請依次輸入這些數字,以空格分隔:\n");
for(i=0;i
=x))++start;
imput[end]=imput[start];
}
imput[start]=x;
mbquicksort(imput,start,start-1);
mbquicksort(imput,start+1,end);
}
}
⑻ C語言:輸入10個數依次從大到小排序!
用數組來存放十個數字,使用「冒泡排序」來實現排序。10個數字需進行9輪掃描,每次掃描時比較相鄰的二個數,如它們不符合要求的大小關系,就交換它們的位置。第一輪掃描結束時,最大的數就「沉」到最後。於是第二的范圍就少了一個數。再進行第二兩棲型、第三輪,…——直到第9輪就完成了。最後輸出結果。
#include<stdio.h>
int
main()
{
int
a[10],i,j,t;
printf("請輸入10個整數:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序以後的數:\n");
for(i=0;i<10;i++)
printf("%d
",a[i]);
printf("\n");
system("pause");
return
0;
}
如果要從大到小排,只要把上面的交換條件
if(a[j]>a[j+1])換為
if(a[j]<a[j+1])就可以了。