- 帖子
- 3
- 精华
- 0
- 积分
- 21
- 阅读权限
- 10
- 注册时间
- 2013-12-17
- 最后登录
- 2014-1-5
|
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main(void)
- {
- int i,j,min,pos;
- int num[10];
-
- // 随机数存入数组并逐个输出
- srand((unsigned)time(NULL));
- for(i=0; i<10; i++)
- {
- num[i] = rand() % 10; // 0~9的随机数
- printf("%d ",num[i]);
- }
- printf("\n");
- // 用"选择排序法"排序
- // 找出数组中最小的数,与数组第一个数交换。
- // 再找出除第一个数外,余下最小的数,以此类推
- for(i=0; i<9; i++)
- {
- min = num[i];
- pos = i;
- for(j=i+1; j<10; j++)
- {
- if(num[j] < min)
- {
- min = num[j];
- pos = j;
- }
- }
- num[pos] = num[i];
- num[i] = min;
- }
- // 输出"未去重"的数组
- for(i=0; i<10; i++)
- printf("%d ",num[i]);
- printf("\n");
-
- // 输出"排序后并去重"的数字
- // 对比 的当前位置前面的所有数字,没重复则输出
- printf("%d ",num[0]);
- for(i=1; i<10; i++)
- {
- for(j=i; j>0; j--)
- {
- if(num[i] == num[j-1]) break;
- else
- if(j==1)
- {
- printf("%d ",num[i]);
- }
- }
- }
- return 0;
- }
复制代码 xuefu帮忙看看呗,好像不是很高效 。。先排序后去重,m、n设为10,懒得接受输入。
|
|