解题思路:
1、先将数输到数组a[n]中去
2、桶排序的思想——设置一个足够大的数组b[1001],并使得b[a[i]]=a[i],其余的b[i]均赋值为0
3、这样操作之后产生了一个这样的数组,一个数组小标等于其本身值的数组。通过这个操作达到了两个功能:去重和排序
4、先来一遍for循环计数,输出个数,再用for循环输出不为零b[i]
注意事项:
1、桶排序有自身的局限性,即b[n]数组不能无线大,要根据给的数据的最大值的大小来看是否能使用桶排序
参考代码:
#include<stdio.h> int main() { int n; scanf("%d",&n); int i,a[n]; int cnt=0; for(i=0;i<n;i++) scanf("%d",&a[i]); int b[1001]; for(i=0;i<1001;i++) b[i]=0; for(i=0;i<n;i++) { b[a[i]]=a[i]; } for(i=0;i<1001;i++) { if(b[i]) cnt++; } printf("%d\n",cnt); for(i=0;i<1001;i++) { if(b[i]) printf("%d ",b[i]); } return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1636 |
求圆的面积 (C语言代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:597 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:653 |
大神老白 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:624 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:624 |
C语言程序设计教程(第三版)课后习题6.8 (C++代码)浏览:575 |
用筛法求之N内的素数。 (C语言代码)浏览:802 |
【矩阵】 (C++代码)浏览:936 |