c語言5個數排序
Ⅰ c語言 任意輸入5個數從小到大排列 程序怎麼寫
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[5]; /*保存5個數的數組*/
int i = 0 , j = 0; /*計數器*/
int m = 0 ; /*用於標識最小的那個數*/
int n; /*用於兩個數的交換,中間值*/
/*從鍵盤接收5個數*/
for( i = 0 ; i < 5 ; i ++)
{
printf("請輸入第%d個數", i + 1);
scanf("%d",&a[i]);
}
/*排序演算法:選擇排序*/
for( i = 0 ; i < 5 ; i ++)
{
m = i ;
for( j = i +1 ; j < 5 ; j ++)
if( a[j] < a[m] )
m = j ;
n = a[i];
a[i] = a[m];
a[m] = n;
}
/*輸出*/
printf("經過排序後,這些數是:\n");
for( i = 0 ; i < 5 ;i ++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
Ⅱ c語言任意輸入5個數,並按從大到小順序輸出
可以採用以下的代碼進行計算:
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta[5];
inti,j,k;
for(i=0;i<=4;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
if(a[i]>a[j])
{
k=a[i];a[i]=a[j];a[j]=k;
}
}
}
printf("排序結果是: ");
for(i=0;i<=4;i++)
{
printf("%d ",a[i]);
}
return0;
}
(2)c語言5個數排序擴展閱讀:
數據類型關鍵字
short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)
long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)
long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)
signed:修飾整型數據,有符號數據類型。(C89標准新增)
unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)
restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)
復雜類型關鍵字
struct:結構體聲明。(K&R時期引入)
union:聯合體聲明。(K&R時期引入)
enum:枚舉聲明。(C89標准新增)
typedef:聲明類型別名。(K&R時期引入)
sizeof:得到特定類型或特定類型變數的大小。(K&R時期引入)
inline:內聯函數用於取代宏定義,會在任何調用它的地方展開。(C99標准新增)
Ⅲ 用c語言怎麼對五個數排序
#include<stdio.h>
void sort(int a[])
{int i,j,t;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
int main()
{int i,j,a[6][5];
for(i=0;i<6;i++)
{ for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
sort(a[i]);
}
for(i=0;i<6;i++)
{printf("Case %d:",i);
for(j=0;j<5;j++)
printf(" %d",a[i][j]);
printf("\n");
}
return 0;
}
Ⅳ C語言,5個數按從大到小排序,冒泡法
#include<stdio.h>
#define N 5
void main()
{ int a[N],i,j,t;
printf("請輸入5位學生的成績 ");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
{for(j=0;j<N-1-i;j++)
if(a[j+1]<=a[j]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
printf("成績由高到低的排序為: ");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}
演算法穩定性
冒泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,是不會再交換的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以冒泡排序是一種穩定排序演算法。
以上內容參考:網路-冒泡排序
Ⅳ 從鍵盤輸入5個整數,按照其值從大到小排序 C語言做,小白式
C語言實現5個整數的降序排序,參考代碼如下:
#include<stdio.h>
#defineN5
voidBubbleSort(inta[],intn)
{
inti,j,t;
for(i=0;i<n-1;++i)
for(j=0;j<n-i-1;++j)
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
intmain()
{
inti,a[N];
for(i=0;i<N;++i)
scanf("%d",&a[i]);
BubbleSort(a,N);
for(i=0;i<N;++i)
printf("%d",a[i]);
return0;
}
Ⅵ c語言輸入任意5個實數,按照由大到小排序輸出
用C語言實現如下功能:從鍵盤輸入5個實數,可以使用冒泡排序法把他們降序輸出。
#include 「stdio.h」
main()
{
int a[8];
int j,i;
for(i=0;i<5;i++)
{
printf(「請輸入第%d個數:\n」,i+1);
scanf(「%d」,&a[i]);
}
for(i=0;i<;j++)
for(i=0;i<5–j;i++)
{
if(a[i]>a[i+1])
a[i+1]=a[i];
}
for(i=0;i<5;i++)
printf("\n排序後的結果是:%d\n",a[i]);
return 0;
}
Ⅶ c語言編程:隨機輸入五個整數,利用選擇排序法對輸入的數進行從小到大排序
你的程序邏輯有些問題,輸入,排序,輸出分開做,這樣更明確,更清晰,代碼如下:
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta[5];
inti,j,t;
intmin;
//輸入
printf("input5numbers: ");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
//選擇排序
for(i=0;i<5;i++){
for(j=i+1;j<5;j++){
if(a[j]<a[i]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
//輸出
printf("thesorrtednumbers: ");
for(i=0;i<5;i++){
printf("%d",a[i]);
}
printf(" ");
system("pause");
return0;
}
運行結果:
Ⅷ C語言:輸入5個數,用調用函數的方法,從小到大排序 用簡單點的
#include<stdio.h>
voidsort(float*a,intn)
{
inti,j,tmp;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
voidmain()
{
floata[5];
inti;
printf("請輸入五個數(逗號隔開):");
scanf("%f,%f,%f,%f,%f",&a[0],&a[1],&a[2],&a[3],&a[4]);
sort(a,5);
printf("排序後為:");
for(i=0;i<5;i++)
printf("%.2f",a[i]);
printf(" ");
}
或者三個數的。
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;
}
(8)c語言5個數排序擴展閱讀:
C語言中沒有預置的sort函數。如果在C語言中,遇到有調用sort函數,就是自定義的一個函數,功能一般用於排序。
一、可以編寫自己的sort函數。
如下函數為將整型數組從小到大排序。void sort(int *a, int l)//a為數組地址,l為數組長度。
{
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;
}
}
}
對於這樣的自定義sort函數,可以按照定義的規范來調用。
二、C語言有自有的qsort函數。
功 能: 使用快速排序常式進行排序。頭文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
參數:
1、待排序數組首地址。
2、數組中待排序元素數量。
3、各元素的佔用空間大小4 指向函數的指針,用於確定排序的順序,這個函數必須要自己寫比較函數,即使要排序的元素是int,float一類的C語言基礎類型。
Ⅸ C語言中5個數從小到大排序
#include<stdio.h>
intmain()
{
inta[5],i,j,t;
printf("請輸入5個數 ");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<5;i++)
printf("%d",a[i]);
printf(" ");
return0;
}
Ⅹ C語言 五個數排序
#include<stdio.h>
void sort(int a[])
{int i,j,t;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
int main()
{int i,j,a[6][5];
for(i=0;i<6;i++)
{ for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
sort(a[i]);
}
for(i=0;i<6;i++)
{printf("Case %d:",i);
for(j=0;j<5;j++)
printf(" %d",a[i][j]);
printf(" ");
}
return 0;
}