#define?N?5
int?m[N];
輸入數值;
降序排序;
關於降序?排序;
數組排序,方法很多,我壹般選擇,”選擇法“
int?i=0,j=0,int?t;
whiile(i<N)
{
j=i; while(j<n) { if(m[i]<m[j])//從大到小?選擇a[i]為最大不是的話?把最大的給他{
t=?m[j]?;m[j]=?m[i]?;
m[i]=t;
}
j++;
}i++;
}
int?n[N+1];
把m數組的值賦給n數組;
i=0;
while(i<N)
{
n[i]=m[i]; i++;}
i=0;
int?b;
輸入要插入的b;
找出n中b應該插在那個位置;
while(i<N)
{
if?(b>n[i])?break;?//i?位置就是他的位置了,因為我比他大?他得靠後站 i++;}
下面我要把它插入了但是得先把i?和i?以後的數往後面趕走
j=0;do
(
n[N-j]=n[N-j-1]?;?//把前面的數給後面? j++;?//循環直到後面壹個數是?i?了?就不幹了 //因為我要將b?給他 }while((N-j)?!=?i);n[i]=b;
然後妳顯示n數組;?就得到結果了!
運行結果:
這是我的具體代碼:
#define? N? 5
#include <stdio.h>
int main()?
{
int m[N];
int? i=0,j=0;
int t;
puts("請輸入五個數!");
while(i<N)
{
scanf("%d",&m[i]); i++;}
i=0;
puts("妳輸入五個數是:");
while(i<N)
{
printf("%-5d",m[i]); i++;}
puts("");
i=0;
while(i<N)
{
j=i; while(j<N){
if(m[i]<m[j])? //從大到小? 選擇a[i]為最大? 不是的話? 把最大的給他 {?t=? m[j] ;?
m[j]= m[i]? ;?
m[i]=t? ;?
}? j++; }? i++;}
i=0;
puts("妳輸入五個數排序後是:");
while(i<N)
{
printf("%-5d",m[i]); i++;}
puts("");
i=0;
int? n[N+1];
while(i<N)
{?
n[i]=m[i];i++;
}
i=0;
int b;
puts("請輸入壹個即將插入的數!");
scanf("%d",&b);
while(i<N)
{
if (b>n[i])? break;? i++;}
j=0;
do
{
n[N-j]=n[N-j-1]? ; j++;}while((N-j)!=i);
n[i]=b;
i=0;
puts("插入後的結果是:");
while(i<N+1)
{
printf("%-5d",n[i]); i++;}
puts("");
puts("按任意鍵繼續。。。");
getchar();
getchar();
return 0;
}