看到论坛里一个小问题,自己也写了下
2012-10-19 15:40
260 查看
问题:输入任意多个一位数字(0-9),然后按照出现次数输出.
我写的对应功能如下:
1.可以接受任意多个一位数;
2.按照出现次数多少排序输出;
3.如几个数字出现次数相同时,按照数字由大到小排序(这个要是由小到大就能省去冒泡排序后的那一块儿).
我写的对应功能如下:
1.可以接受任意多个一位数;
2.按照出现次数多少排序输出;
3.如几个数字出现次数相同时,按照数字由大到小排序(这个要是由小到大就能省去冒泡排序后的那一块儿).
#include<stdio.h> void Pro(int ar[],int n); void Bubble_Sort(int Num[],int len); //冒泡排序 int Idex[10]={0,1,2,3,4,5,6,7,8,9}; //可能出现的数字组成的数组 int main(void) { int i,n; puts("Input the number of elements to the array:"); scanf("%d",&n); int ar ; //变长数组,编译器需要支持C99标准才行. puts("Input n numbers:"); for(i=0;i<n;i++) //读取数组元素 scanf("%d",&ar[i]); Pro(ar,n); putchar('\n'); return 0; } void Pro(int ar[],int n) { int i,j=0,temp; int Num[10]={0}; for(i=0;i<n;i++) //统计各个数字出现的次数 { temp=ar[i]; switch(temp) { case 0:Num[0]++;break; case 1:Num[1]++;break; case 2:Num[2]++;break; case 3:Num[3]++;break; case 4:Num[4]++;break; case 5:Num[5]++;break; case 6:Num[6]++;break; case 7:Num[7]++;break; case 8:Num[8]++;break; case 9:Num[9]++;break; default : break; } } Bubble_Sort(Num,10); //排序 for(i=1;i<10;i++) //如果出现次数相同,则按数字由大到小排列 for(j=0;j<10-i;j++) { if(Num[j]==Num[j+1] && Num!=0) if(Idex[j]<Idex[j+1]) { temp=Idex[j]; Idex[j]=Idex[j+1]; Idex[j+1]=temp; } } puts("统计结果如下(出现次数由多到少排序,出现次数相同时按数字由大到校排序,数字后括号内为其出现的次数统计):"); for(i=0;i<10;i++) { if(0!=Num[i]) //过滤掉后面次数为0的元素 printf("%d(%d) ", Idex[i],Num[i]); } putchar('\n'); } void Bubble_Sort(int Num[],int len) //冒泡排序 { int i,j,temp1,temp2; for(i=1;i<len;i++) { for(j=0;j<len-i;j++) //循环找到下沉"气泡",每下沉一位,下次比较长度小一位 { if(Num[j]<=Num[j+1]) { temp1=Num[j]; //数字交换 Num[j]=Num[j+1]; Num[j+1]=temp1; temp2=Idex[j]; //次数对应数字也同时移动 Idex[j]=Idex[j+1]; Idex[j+1]=temp2; } } } }
相关文章推荐
- 论坛里看到的一个SQL问题及解答
- 论坛上看到的一个java输出顺序问题。
- 这是我在逛一个微波论坛的时候看到的一些帖子里面对HFSS仿真的一些问题的解决方法,不一定正确,有不对的地方希望指出,我改正!
- 看到论坛上的一个对于js this关键字的问题,比较有代表性
- 自己写了一个flume小文件合并脚本,解决hdfs小文件过多问题
- 开发中自己千万需要注意的一个问题
- 解开一个困扰自己多时的小问题——从std::cout和endl说起
- win7 下安装oralce 一点点问题,自己当作一个笔记吧!
- 今天在国外论坛上为别人解决一个简单问题
- 一直想创业做产品的你,是否像Comfy Read创始人那样起初是为了想要解决自己的问题而开发一个产品的呢?
- 自己碰到的一个control +鼠标左键无效问题。
- 在论坛中出现的比较难的sql问题:16(取一个字段中的数字)
- asp.net 的一个新bug. 当你的程序出问题时, 不仅仅要检查自己的代码和逻辑, 还要检查微软的代码, 累吗?
- SDN论坛看到BW的问题及相关解答(摘抄)-转
- 我来问个问题!该如何给自己一个正确的定位?
- 看好多论坛的签名很有趣,自己也搞了一个,赫赫
- 当发现一个问题自己会了,但网上能找到答案的时候是记录还是不记录呢?
- 来自于一个问题的回答对自己的反思 php怎么发送邮件?发送邮件插件PHPMailer
- 做了五年的程序员啦,从今天开始,没解决一个问题,坚持把思路整理出来,发布到网上分享,对自己对他人都有益处
- 解开一个困扰自己多时的小问题——从std::cout和endl说起