黑马程序员技术交流社区
标题:
输入10个数,找出出现次数最多的数
[打印本页]
作者:
xiaochongzi
时间:
2015-10-30 12:19
标题:
输入10个数,找出出现次数最多的数
输入10个数,找出出现次数最多的数 (如果多个并列,则按数字出现顺序分别输出)
求代码详细,最好注释多多
作者:
luhaisheng
时间:
2015-10-30 12:38
/** * @(#)TongJi.java * * TongJi application * * @author kuroro * @version 1.00 2011/9/6 */ import java.util.Arrays; public class TongJi { public static void main(String[] args) { int[] a = new int[41]; for(int i=0;i<50;i++) { int count = (int)(Math.random()*41)+10; System.out.print(count+" "); a[count-10]++; } for(int j = 0 ; j< a.length; j++) { if(a[j]==0) continue; else { System.out.println(); System.out.println((j+10)+"出现了"+a[j]+"次"); } } int max=a[0]; for(int j=0;j<a.length;j++) { if(a[j]>max) max = a[j]; } System.out.println(); System.out.println("最大出现次数为"+max+"次"); for(int j=0;j<a.length;j++) { if(a[j]==max) System.out.println("出现次数最多的数字为"+(j+10)); } } }
作者:
菊花爆满山
时间:
2015-10-30 14:43
代码写完之后也才发现是IOS
作者:
wokua
时间:
2015-10-30 16:06
#import <Foundation/Foundation.h>
/*要求:输入10个数,找出出现次数最多的数 (如果多个并列,则按数字出现顺序分别输出)
思路:1、创建个数组存储十个数;
2、创建个二维数组,遍历原数组,第一列用于存放元素,第二列用于存放次数;
3、比较出现次数输出最大的,并记录;
4、输出数组值。找是否有次数相同的有的话,输出;
*/
void getMostTime(int arr[]){
// 定义用于存储数字和出现次数的容器,共两种采用二维数组,最多十个数,所以位10 2
//用brr[][0]存储数值,brr[][1]存储次数
int brr[10][2];
//定义不相同数的个数unsamecount,用于后期存储分配内存
//定义个flag标记用于判断是否已经存储相同数值
int unsamecount=0,flag=0;
for (int i=0; i<10; i++) {
//若相同数值为存储,开辟新空间存储其,次数归一
if (flag==0) {
//存储数值
brr[unsamecount][0]=arr[i];
//存储次数并初始化
brr[unsamecount][1]=1;
// 此处位置,为下一个数值分配下一个位置
unsamecount++;
}
//每次判断标记初始化
flag=0;
for (int j=0; j<i; j++) {
//判断是否已经存储相同数值,通过改变标记让后续程序了解
//如果存在对应次数加一
if(brr[j][0]==arr[i]){
brr[j][1]=brr[j][1]+1;
flag ++;
break;
}
}
}
//定义出现最大次数标记并初始化,定义出现最大次数为主标记方便后续输出
int max=brr[0][1],maxindex=0;
// 找寻出现最大次数数值对应的位置
for (int i=0;i<unsamecount ; i++) {
if (max<brr[i][1]) {
max=brr[i][1];
maxindex=i;
}
}
printf("出现次数最多的数依次是\n");
//输出对应数值和次数,为避免有相同次数对此位置后各次数均进行判断
for (int i=maxindex; i<unsamecount; i++) {
if (brr[maxindex][1]==brr[i][1]) {
printf("数字:%d\t次数:%d\n",brr[i][0],brr[i][1]);
}
}
}
int main(int argc, const char * argv[]) {
// 定义存储是个数字的容器,此处为数组
int arr[10];
printf("请输入十个数:\n");
//输入数据
for (int i=0; i<10; i++) {
scanf("%d",&arr[i]);
}
//获得出现次数多的数并打印
getMostTime(arr);
return 0;
}
作者:
2028865305
时间:
2015-11-1 10:01
好吧好吧,就这样吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2