對於少數的數字的排列,可以透過簡單的if巢狀語句便可將所有情況列舉出來;
但是一旦要比較的數字較多,這種方法便缺少了可執行性;
因此,我們可以採用陣列的思想來進行程式設計;
此處以:將10個數按從小到大排列輸出 舉例:
#include"stdio.h"
#define N 10
int main ()
{
int a[N];
int i,j,t;
printf("Please input %d numbers:\n",N);
for(i<0;i<N;i++)
scanf("%d",&a[i]);
}
for(i=1;i<=N-1;i++)
for(j=0;j<N-i;j++)
if(a[j]>a[j+1])
t=a[j];a[j]=a[j+1];a[j+1]=t;
printf("The resortrd numbers is :\n");
for(i=0;i<N;i++)
printf("%-4d",a[i]);
附:
程式開頭採用了定義一個宏常量的方法,可以透過改變該常量來對程式進行整體的改變;增加了程式的靈活性,方便對源程式進行修改;
如果要按從大到小的排列方式進行排列,僅僅需要更改程式中的一處,此處便不再詳細說明,自己探討^_^
對於少數的數字的排列,可以透過簡單的if巢狀語句便可將所有情況列舉出來;
但是一旦要比較的數字較多,這種方法便缺少了可執行性;
因此,我們可以採用陣列的思想來進行程式設計;
此處以:將10個數按從小到大排列輸出 舉例:
#include"stdio.h"
#define N 10
int main ()
{
int a[N];
int i,j,t;
printf("Please input %d numbers:\n",N);
for(i<0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=N-1;i++)
{
for(j=0;j<N-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
printf("The resortrd numbers is :\n");
for(i=0;i<N;i++)
{
printf("%-4d",a[i]);
}
}
附:
程式開頭採用了定義一個宏常量的方法,可以透過改變該常量來對程式進行整體的改變;增加了程式的靈活性,方便對源程式進行修改;
如果要按從大到小的排列方式進行排列,僅僅需要更改程式中的一處,此處便不再詳細說明,自己探討^_^