基礎資料結構-使用C
程式1.4:選擇排序法這是我按照課本打出來做練習的
不過怪怪的
下面程式碼中的這個stdlib.h原先應該是math.h標頭檔
不過rand()這個函數,我卻在math.h標頭中找不到它
於是我就去stdlib1標頭中找,結果卻被我找到了
於是我將它更換一下,程式碼這樣就可以動了
補充:我下面程式是利用Visual c++來跑的,如果要利用Dev c++來跑,
請把void main(void)改成int main(void)
程式碼如下:
#include <stdio.h> #include <stdlib.h> #define MAX_SIZE 101 #define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t)) void sort(int[],int);/*選擇排序法*/ void main(void) { int i,n; int list[MAX_SIZE]; /*輸入要生成數字的個數*/ printf("Enter the number of numbers to generate (1<n<101):"); scanf("%d",&n); if(n<1||n>MAX_SIZE) { fprintf(stderr,"Improper value of n\n"); exit(EXIT_FAILURE); } for(i=0;i<n;i++) { list[i]=rand( )%1000; printf("%d",list[i]); printf(" "); } sort(list,n); /*印出已經排序好的數字*/ printf("\n Sorted arry:\n"); for(i=0;i<n;i++) { printf("%d",list[i]); printf(" "); } printf("\n"); system("pause"); } void sort(int list[],int n) { int i,j,min,temp; for(i=0;i<n-1;i++) { min=i; for(j=i+1;j<n;j++) if(list[j]<list[min]) min=j; SWAP(list[i],list[min],temp); } }
如果要複製上方程式碼,請點擊程式碼上方的 圖示會跳出一個視窗,複製即可
成果大致上如下
如果發現文章有錯誤,歡迎留言告知~謝謝指教!
沒有留言:
張貼留言
俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!