解题思路:
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语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:546 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:642 |
简单的a+b (C语言代码)浏览:647 |
printf基础练习2 (C语言代码)浏览:942 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1245 |
淘淘的名单 (C语言代码)浏览:1104 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:557 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1430 |
母牛的故事 (C语言代码)浏览:1428 |
最小公倍数 (C语言代码)浏览:1029 |