c語言從大到小排序
❶ c語言,輸入一組數進行排序,由大到小
#include<stdio.h>
int main()
{int a[100],n,i,j,t;
scanf("%d",&n);
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]<a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf(" ");
return 0;
}
❷ 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;
}
(2)c語言從大到小排序擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。
❸ C語言如何用選擇法排序任意輸入十個數(從大到小、從小到大)
#include <stdio.h>
main(void)
{
int i,j,a[10],p=0,t=0,temp;
printf("請輸入原數組:\n");
for(j=0;j<10;j++)
scanf("%d",&a[j]);
temp=a[0];
for(j=0;j<9;j++)
{
t=j;
temp=a[j];
for(i=j+1;i<10;i++)
if(temp>a[i]) //這是由小到大排序 如果是大到小則改為 if(temp<a[i])
{temp=a[i];p=i;}
{temp=a[p];a[p]=a[t];a[t]=temp;}
}
printf("排序後的數組為:\n");
for(j=0;j<10;j++)
printf("%d ",a[j]);
}
❹ C語言~十個數字從小到大怎麼排列~從大到小呢~
//要求任意輸入10個數,然後按從小到大順序輸出
#include <stdio.h>
int main()
{
int a[10];
int i,j;
int temp;
printf("請輸入10個整數:");
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])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列後順序為:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("
");
return 0;
}
❺ 用C語言對三個數從大到小排序
最小用min 不要用main. 這個是主函數名 不能和變數重復的.
#include<stdio.h>
intmain(void)
{
inta,b,c,max,min;
scanf("%d%d%d",&a,&b,&c);
max=a>b?a:b;
min=a<b?a:b;
if(c>max)max=c;
if(c<min)min=c;//這里用<
printf("從大到小排序:%d%d%d ",max,a+b+c-max-min,min);
return0;
}
❻ C語言,冒泡排序法從大到小
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int flag,temp,i,j,a[20];
srand((unsigned)time(NULL));
printf("before sorting...\n");
for(i=0;i<20;i++)
a[i]=rand()%1000;
for(i=0;i<20;i++)
printf("%4d",a[i]);
for(i=0;i<20;i++)
{
flag=0;
for(j=0;j<20-i-1;j++)
{
if(a[j]<a[j+1]) //數組越界了,幫你改了一下
{
temp=a[j],a[j]=a[j+1];a[j+1]=temp;
flag=1;}
}
if(flag==0)
break;
}
printf("after sorting...\n");
for(i=0;i<20;i++)
printf("%4d",a[i]);
}
❼ C語言四個數由大到小排列
可以將四個數先存到數組中,然後進行插入排序。
一、演算法設計:
1、輸入4個數;
2、使用任意方法進行排序;
3、輸出結果。
二、演算法優化:
如果選擇插入排序,那麼可以在輸入過程中,同時完成排序操作,減少一次循環,提高效率。
三、參考代碼:
#include<stdio.h>
intmain()
{
inti,j,a[4],n;
for(i=0;i<4;i++)//循環四次
{
scanf("%d",&n);//輸入一個數,並存在n中。
for(j=i-1;j>=0;j--)//插入排序,查找要插入的位置。
{
if(a[j]>=n)break;
a[j+1]=a[j];
}
a[j+1]=n;//插入n值。
}
for(i=0;i<4;i++)
printf("%d",a[i]);//輸出結果。
return0;
}
❽ 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]);
}
演算法穩定性
冒泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,是不會再交換的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以冒泡排序是一種穩定排序演算法。
以上內容參考:網路-冒泡排序
❾ C語言 簡單的從大到小排序問題
這是冒泡排序法。
第一個循環的控制變數應該是 i < N - 1 ,也就是 兩兩比較的 前一個數 最多隻到 倒數第二個;
而 第二個 循環的控制變數應該是 j < N ,表示 兩兩比較的後一個數, 要直到最後一個數。
如有幫助,煩請點採納,謝謝!
❿ C語言中如何從大到小排列一個數組中的元素
先找不是0的元素個數
然後對前面部分進行排序即可。
函數如下
voidmy_sort(int*a)
{
intn,i,j;
intt;
for(n=0;a[n];n++);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
自己寫主函數 調用my_sort就好了。