㈠ 如何用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;
}
㈡ C語言的升序和降序
#include<stdio.h>
void main()
{
int a[5]={};
int i,j;
int temp=0;
for(i=0;i<5;i++)
{
printf("請輸入第%d個整數\n",i+1);
scanf("%d",&a[i]);
}
for(i=1;i<5;i++)
{
for(j=0;j<5-i;j++)
{
if(a[j]<a[j+1])....................//把大於號改成小於號
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<5;i++)
{
printf("排序後的整數:%d\t",a[i]);
}
}
if(a[j]<a[j+1])....................//把大於號改成小於號
㈢ 用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;
}
㈣ C語言數組七個數升序排列和降序排列怎麼編程
1、打開visual C++ 6.0-文件-新建-文件-C++ Source File。
㈤ c語言 用一個函數實現用選擇法對10個整數降序排列 圖片中的是升序排列,該怎麼改
倒數第三行改為if(array[j])>array[k])
㈥ 關於C語言進行降序排列
#include "stdio.h"
#define MAX 10
void sort(int *p,int n)
{int i,j;
int temp; //記錄每一輪比較中最大值
int maxindex; //記錄每一輪比較中最大值的下標
for (i=0;i<n;i++)
{
temp=p[i];
maxindex=i;
for (j=i+1;j<n;j++)
if (temp<p[j]) {temp=p[j];maxindex=j;}
if(maxindex!=i){p[maxindex]=p[i];p[i]=temp;}
}
}
/*
void sort(int *p)
{int i,j,k;
for (i=0;i<9;i++)
for (j=i+1;j<10;j++)
if (p[i]<p[j]) {k=p[i];p[i]=p[j];p[j]=k;}
這個是簡單選擇排序,但是執行效率沒有上面的高。不過對於比較小的基數,還是看不出來效率的優劣,如果在基數上百萬時,效率高的執行時間將節省不少。
*/
main()
{
int a[MAX],i;
for (i=0;i<MAX;i++)
scanf("%d",&a[i]);
sort(a,MAX);
for(i=0;i<MAX;i++)
printf("%d ,",a[i]);
}
㈦ C語言將數組a中的10個整數降序排列並輸出,如何編程
這個是自己輸入10個整數,不想自己輸的話就先給數組a賦初值,然後把下面程序里的輸入語句去掉即可
#include <stdio.h>
void main()
{
int i,j,max,temp,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
max=i;
for(j=i+1;j<10;j++)
if(a[max]<a[j])
max=j;
temp=a[i];
a[i]=a[max];
a[max]=temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
㈧ 關於C語言進行降序排列
#include<stdio.h>
#include
<math.h>
//從鍵盤上輸入10個整數,要求用插入法實現對它們進行降序排列。
//(主函數完成輸入輸出功能,排序用函數sort()來實現)。
void
sort(int
a[],int
n)
{
int
i,j,temp;
for(i=0;i<n-1;i++)
{
temp=a[i+1];
j=i;
while(j>-1&&temp<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
int
main()
{
int
i,a[10]={0};
printf("請輸入10個數據:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%d\t",a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d\t",a[i]);
return
0;
}
㈨ 這哪錯了,為什麼降序不了,該怎麼改(用選擇法排序)c語言
sort 函數內部
首先 i 的循環應該是 [0, n - 1)
for(inti=0;i<n-1;++i)
其次,j的循環應該跟i有關
for(intj=i+1;j<n;++j)
然後就應該可以了。