我的选择排序

 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  

 

转载于:https://www.cnblogs.com/xupengzhuo/archive/2011/03/29/1998329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值