1. 如何用c語言將一組數進行降序排列
假設有n個數。
#include<stdio.h>
void min(int *a,int *b)
{
int data;
if(*a<*b)
{
data=*a;
*a=*b;
*b=data;
}
}
int main()
{
int t[10];//假設n=10,可以設置為其他數
int i,j,n=10;
for(i=0;i<n;i++)
scanf("%d",&t[i]);
for(i=0;i<n-1;i++)
{
for(j=i;j<n-1;j++)
{
min(&t[j],&t[j+1]);
}
}
for(i=0;i<n;i++)
printf("%3d",t[i]);
printf("\n");
return 0;
}
2. c語言對從鍵盤輸入的十個整數進行降序排序,排序後輸出第二大的數,編寫fun函數
排序有挺多方法的,例如:冒泡排序法、選擇排序法
以下使用選擇排序
#include<stdio.h>
voidfun(inta[],intn)
{
inti,j,k,tmp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;++j)
if(a[j]>a[k])k=j;
if(k!=i)
{
tmp=a[k];a[k]=a[i];a[i]=tmp;
}
}
}
intmain()
{
inta[10];
inti;
for(i=0;i<10;i++)scanf("%d",&a[i]);
fun(a,10);
for(i=0;i<10;i++)printf("%d ",a[i]);
printf("第二大的數是:%d",a[1]);
return0;
}
3. 用C語言編寫,輸入10個數按降序排列
源程序代碼如下:
#define _CRT_SECURE_NO_WARNINGS//VS環境下需要,VC不需要
#include<stdio.h>//頭文件;
int main()
{
int i = 0;
int j = 0;
double temp = 0;
double a[10] = { 0 };//定義三個變數和一個長度為10的數組;
printf("請輸入十個數:
");//顯示「請輸入十個數」
for (i = 0; i < 10; i++)
{
scanf("%lf", &a[i]);//從鍵盤上輸入十個數送到數組;
}
for (i = 1; i < 10; i++)//for循環,進行9次循環;
{
for (j = i - 1; j >= 0; j--)//for循環,在每次大的循環中,a[i]從a[1]依次與它前面的數比較;
{
if (a[j + 1] > a[j])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;//如果a[j + 1]>a[j],則把這兩個數組元素互換,目的把最大的數放到前邊;
}
else
{
break;
}
}
}
for (i = 0; i < 10; i++)
{
printf("% lf
", a[i]);//輸出排好順序的十個數;
}
return 0;//返回值為0;
}
程序運行結果如下:
(3)快速排序實現降序c語言代碼擴展閱讀:
其他實現方法如下:
#include<stdio.h>
int mysort(int *a, int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
return 0;
}
int main()
{
int a[10];
int i, j;
printf("input 10 numbers:
");
for (i = 0; i < 10; i++)
{
printf("the number%d is:", i + 1);
scanf("%d", a + i);
fflush(stdin);
}
mysort(a, 10);
for (i = 9; i >= 0; i--)
printf("%3d", a[i]);
printf("
");
return 0;
}
4. c語言 用一個函數實現用冒泡法對十個整數升序和降序排列 麻煩寫全些
#include<stdio.h>
voidsort1(inta[],intn)
{inti,j,t;
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;}
}
voidsort2(inta[],intn)
{inti,j,t;
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;}
}
intmain()
{inti,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("
");
sort1(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("
");
sort2(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("
");
return0;
}
5. C語言編程,輸入n個整數,對其進行降序排序,n由鍵盤輸入
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
int*a,i,j,n;
scanf("%d",&n);
a=(int*)malloc(sizeof(int));
for(i=0;i<n;i++)
{
intt;
scanf("%d",&t);
for(j=i-1;j>=0;j++)
派攜if(t<a[j])break;
else塵余伏a[j+1]=a[j];
a[j+1]=t;
}
毀斗for(i=0;i<n;i++)
printf("%d",a[i]);
}
6. C語言如何 對10個數進行降序排序。 這邊要課程設計了。希望大家幫幫忙
冒泡排序演算法實現10個數的降序排列,參考代碼如下:
#include"stdio.h"
#defineN10
intmain()
{
inti,j;
intt,a[N];
for(i=0;i<N;++i)
scanf("%d",&a[i]);
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;
}
for(i=0;i<N;++i)
printf("%d",a[i]);
return0;
}
7. 輸入n個整數,對其進行降序排序(n由鍵盤輸入) 用C語言寫
#include<stdio.h>
int行爛main(){
intn=0,k,i,j,t,a[20]={0};
printf("輸入整數(Ctrl+棗鄭Z退出):");
while(scanf("%d",&a[n])==1&&n<20){
n++;
printf("輸入整數(Ctrl+Z退出):");
}
for(i=0;i<n-1;++i){
k=i;
for(j=i+1;j<檔岩漏n;++j){
if(a[k]<a[j])k=j;
}
if(k!=i){
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
for(i=0;i<n;++i)printf("%d",a[i]);
printf(" ");
return0;
}