解题思路:
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 人评分
简单的a+b (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:732 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)万恶的long long浏览:906 |
【计算球体积】 (C语言代码)浏览:1158 |
核桃的数量 (C语言代码)浏览:893 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
时间转换 (C语言代码)浏览:697 |
陶陶摘苹果2 (C语言代码)浏览:650 |
拆分位数 (C语言代码)浏览:558 |
1392题解(大数相加)浏览:640 |