基礎資料結構-使用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
看過文章之後歡迎留下您寶貴的意見喔!