原創 閆小林 C語言入門到精通 1月13日編程
收錄於話題數組
#C語言實戰練習ide
103個函數
「要成爲絕世高手,並不是一朝一夕,除非是天生武學奇才,可是這種人…萬中無一」
學習
——包租婆
這道理放在C語言學習上也一併受用。在編程方面有着天賦異稟的人畢竟是少數,咱們大多數人想要從C語言小白進階到高手,須要經歷的是日積月累的學習。那麼如何學習呢?固然是天天都練習一道C語言題目!!spa
做者blog
閆小林排序
白天搬磚,晚上作夢。我有故事,你有酒麼?圖片
例60:C語言實現用選擇法對10個整數排序。
解析:選擇排序思路以下,設有10個元素a[1]~a[10],將a[1]與a[2]~a[10],若a[1]比a[2]~a[10]都小,則不進行交換,即無任何操做。
若a[2]~a[10]中有一個以上比a[1]小,則將其中最大的一個,與a[1]交換,此時a[1]中存放了10箇中最小的數。依次類推,共進行9輪比較,a[1]~a[10]就已按由小到大的順序存放了。
總體代碼邏輯爲了讓讀者更加清晰,小林這裏分爲四部分:
第一部分 鍵盤輸入10個數:
ci
for(i=1;i<=10;i++)//依次鍵盤錄入10個數據
{
printf("array[%d]=",i-1);//數組下標從0開始
scanf("%d",&array[i]);
}
for(i=1;i<=10;i++)//將鍵盤錄入的10個數原樣輸出
{
printf("%5d",array[i]);
}
for(i=1;i<=9;i++)
{
min=i;//把第一個數做爲最小的
for(j=i+1;j<=10;j++)
{
if(array[min]>array[j])//判斷大小,小的爲min
{
min=j;
}
}
temp=array[i]; //大小交換
array[i]=array[min];
array[min]=temp;
}
for(i=1;i<=10;i++)//輸出排序後的10個數
{
printf("%5d",array[i]);
}
#include<stdio.h>//頭文件
int main()//主函數
{
int i,j,min,temp,array[11];//定義整型變量和數組
printf("輸入數據:\n");//提示語句
for(i=1;i<=10;i++)//依次鍵盤錄入10個數據
{
printf("array[%d]=",i-1);//數組下標從0開始
scanf("%d",&array[i]);
}
printf("\n");//換行
printf("原樣輸出:\n");//提示語句
for(i=1;i<=10;i++)//將鍵盤錄入的10個數原樣輸出
{
printf("%5d",array[i]);
}
printf("\n");//換行
for(i=1;i<=9;i++)
{
min=i;//把第一個數做爲最小的
for(j=i+1;j<=10;j++)
{
if(array[min]>array[j])//判斷大小,小的爲min
{
min=j;
}
}
temp=array[i]; //大小交換
array[i]=array[min];
array[min]=temp;
}
printf("排序輸出:\n");//提示語句
for(i=1;i<=10;i++)//輸出排序後的10個數
{
printf("%5d",array[i]);
}
printf("\n");//換行
return 0;//主函數返回值爲0
}
輸入數據:
array[0]=1
array[1]=4
array[2]=7
array[3]=9
array[4]=4
array[5]=3
array[6]=7
array[7]=9
array[8]=5
array[9]=3
原樣輸出:
1 4 7 9 4 3 7 9 5 3
排序輸出:
1 3 3 4 4 5 7 7 9 9
--------------------------------
Process exited after 8.036 seconds with return value 0請按任意鍵繼續. . .