我的选择排序
1 #define MaxLen 256 2 #include <stdio.h> 3 void main() 4 { 5 int s[MaxLen]={0}; 6 int i=0; 7 int count=0; 8 int *pmin=0; 9 printf("你要对多少个数字进行选择排序?\n请输入:"); 10 scanf("%d",&i); 11 if(i>MaxLen) 12 { 13 printf("数字过大,重新输入:"); 14 scanf("%d",&i); 15 } 16 printf("你要对%d个数字进行选择排序,这个数字序列是:\n",i); 17 for (int k=0; k<i; k++) 18 { 19 scanf("%d",&s[k]); 20 } 21 22 for (;count<i;count++) 23 { 24 pmin=&s[count]; 25 for (int t=count; t<i; t++) //和自己对比一次;数组谨防越界。 26 { 27 if (*pmin>s[t]) 28 pmin=&s[t]; 29 } 30 if(*pmin<s[count]) //不加这个判断语句,倘若count循环进行到倒数第二次时恰好排好,会出现逻辑问题 31 { 32 *pmin^= s[count]; 33 s[count]^= *pmin; 34 *pmin^= s[count]; 35 } 36 } 37 printf("\n"); 38 for (int j=0; j<i; j++) 39 { 40 printf("%3d",s[j]); 41 } 42 printf("\n"); 43 } 44