解题思路:
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语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:450 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:539 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:676 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:659 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:624 |
wu-理财计划 (C++代码)浏览:827 |
WU-拆分位数 (C++代码)浏览:779 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:556 |
字符逆序 (C语言代码)浏览:455 |