精华内容
下载资源
问答
  • 出现次数最多的数C++

    千次阅读 2015-08-18 22:32:12
    试题名称:出现次数最多的数。 问题描述:给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式:输入的第一行只有一个正整数n(1),表示数字的个数。输入的第二行n...

    试题名称:出现次数最多的数。
    问题描述:给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
    输入格式:输入的第一行只有一个正整数n(1<=n<=1000),表示数字的个数。输入的第二行n个整数,相邻的数用空格分开。
    输出格式:输出这n个数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
    样例输入:6 10 1 10 20 30 20
    样例输出:10

    #include<iostream>
    #include<vector>
    #include<algorithm>//sort排序函数要用到
    
    using namespace std;
    
    struct choosen{
        int count;//出现的次数
        int value;//值
    };//记录某一值出现的次数
    
    int choose(vector<int>& L1);
    
    int main(){
        int i;
        cin>>i;
        vector<int> L1(i);
        for(int j=0;j<i;j++)
            cin>>L1.at(j);
        int answer=choose(L1);
        cout<<answer<<endl;
        return 0;
    }
    
    int choose(vector<int>& L1){
        sort(L1.begin(),L1.end());//对L1按从小到大进行排序
        choosen T1,T2;//T1用来保存最终结果,T2用来存储中间结果
        T1.count=0;
        T1.value=0;//T1初始化
        T2.count=1;
        T2.value=L1.front();//T2初始化,从第一个元素开始
        for(int i=0;i<L1.size()-1;i++){
            if(L1.at(i)==L1.at(i+1))//若相等则次数加一
                T2.count++;
            else{//如不等则更新T2,而且当前次数大于保存的次数时更新T1
                if(T2.count>T1.count)
                    T1=T2;
                T2.count=1;
                T2.value=L1.at(i+1);
                }
        }
        if(T2.count>T1.count)//最后还需更新一次
            T1=T2;        
        return T1.value;
    }
    

    主要思路:使用vector容器来存储输入的值,对其进行排序。按顺序对该容器进行访问,使用choosen结构体来保存最终结果。

    展开全文
  • 这次贴上来的代码是解决“找出数列中出现次数最多数字” 这个问题的,此前在论坛里找到两位前辈的文章,链接如下: 找出数组中出现次数最多的那个数——主元素问题 函数 C++ 找数组a中出现次数最多

    针对入门级新手的C++代码分享

    编程新人,前来报到!
    最近老师布置的C++作业对于我这种纯萌新来讲实在是让人头大 心潮澎湃,但是我在网上找前辈们的代码学习时发现了一个问题——大佬们的代码都是简洁明了,甚至有所减省的,这对于我们这种小菜鸡而言有点不太友好 高深莫测,所以我就把本菜鸡自己写的代码po上来供大家批评指正啦!
    这次贴上来的代码是解决“找出数列中出现次数最多的数字” 这个问题的,此前在论坛里找到两位前辈的文章,链接如下:
    找出数组中出现次数最多的那个数——主元素问题
    函数 C++ 找数组a中出现次数最多的值
    但是问题来了:由于我是刚刚入门的小菜鸡,第一位大佬的代码我没看懂,太深奥了(手动滑稽),而第二位前辈的代码我虽然能看懂,但却是错误的我自己跑不出来正确的结果,错了请勿怪 。所以,我就厚着脸皮把本菜鸡自己的代码分享出来啦,欢迎各位大佬们前来锤爆,也供一些像我一样的萌新来参考参考~

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    int main()
    {
      int a,b,i,j,k=1,l=1;         
      cin>>a;                      //输入数列中数的个数a
      int *w=new int[a];           //定义一个不定数组w,w的长度即为a,且数组内的数据是可以手动输入的
      for (b=0;b<a;b++)            //利用for循环体来输入w数组中的数据
      {
          cin>>w[b];
      }
      int m=w[0];                  //初始化m,使其为数组的第一个数w[0]
      for (i=0;i<a;i++)
      {
        for (j=0;j<a;j++)
          {
            if (j!=i)              //由于最开始k赋值为1,此处需要防止重复计数;若最开始k赋值为0,则可以省去这个步骤
              {
                if (w[j]==w[i])
                  {
                    k++;           //k用于记录重复数字出现的次数
                    if (k>=l)
                      {
                        l=k;       //l也用于记录重复数字出现的次数,但是仅用于记录最多的次数,有需要计算出现最多的数字出现了几次时,就可直接在末尾输出l
                        m=w[j];    //m用于记录出现次数最多的数字,须注意初始化m时切不可赋值为0
                      }
                      else
                      {}
                  }
                else               
                  {
                    k=1;           //关键步骤,此处必须将k再次赋值为1,否则最后输出的结果将会是数组中的最后一个数
                  }
              }
          }
      }
      cout<<m<<endl;
      system("pause");             //若程序报错,可替换为getchar();
      return 0;
    }
    

    在这里我要说明一下注释里面的关键步骤:此处将用于记数的k再次赋值为1非常非常重要,如果缺少这个步骤,那么k的值将会在循环过程中不断增加,使得最内层的if语句会被不断执行,并最终导致m的值不是出现次数最多的数字,而是数组中的最后一个数字!上文中的第二位前辈的代码中就是因为没有将用于记数的变量重新赋值为1才导致的最终结果出错,(这是我自己对着代码分析出来的原因,如果不对烦请告知,感激不尽!)
    以上~
    我的代码是本菜鸡从网络上大佬们的文章里七拼八凑,珠海拾遗所得,虽然加入了一些自己的理解以及一些编程时的习惯,但如果侵权了,烦请告知!

    展开全文
  • 找出出现次数最多的 #include <iostream> #include <map> using namespace std; //取重复最多 int getMax(int *a,int len) { int val=0; if(len==0) { cout<<"长度为0不合法"<<endl; ...

    键盘输入以空格为分隔符的一组数字
    找出出现次数最多的

    #include <iostream>
    #include <map>
    using namespace std;
    //取重复最多
    int getMax(int *a,int len)
    {
        int val=0;
       if(len==0)
       {
           cout<<"长度为0不合法"<<endl;
           return -1;
        }
       map<int,int> m;
    
       for(int i=0;i<len;i++)
       {
           m[a[i]]++;
           if(m[a[i]]>=m[val])
               val=a[i];
       }
       return val;
    }
    //数组排序
    int bubble(int *a,int n){
        for(int i=0;i<n;i++){
            for(int j=0;j<n-i-1;j++){
                if(a[j]>a[j+1]){
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
    }
    
    int main() {
       int a[20];
       int l=0;
       char c;
    
       cin>>a[l++];
       while((c=getchar()) != '\n'){
           cin>>a[l++];
       }
       
       bubble(a,l);
    
       cout<<getMax(a,l);
    
       return 0;
    }
    
    展开全文
  • CCF-201312-1-出现次数最多的数(C++)

    千次阅读 2019-04-17 16:59:38
    试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式  输入的第一行只有...

    试题编号: 201312-1
    试题名称: 出现次数最多的数
    时间限制: 1.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
    输入格式
      输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
      输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
    输出格式
      输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
    样例输入
    6
    10 1 10 20 30 20
    样例输出
    10

    解题思路:用一个数组的下标来存放第二行输入的数,而这个数组的值则是次数,因为题目已经明确第二行的数字一定非0,所以判断第二个数组b[i]的值最大的,将条件限制为只有当最大值大于b[i]的值才会将最大次数更新,这就保证了如果有很多最大的,那么输出的是最小的。
    代码做进一步说明

    #include <iostream>
    using namespace std;
    int main()
    {   
        int n;
        cin>>n;
        int a[1024];
        for(int i=1;i<=n;i++)
        cin>>a[i];
        int b[10010]={0};//数组下标存这个数,数组值存这个数出现的次数
    	for(int i=1;i<=n;i++)
        {   
            int b_i=a[i];
    	    b[b_i]++;
        }
    	int max=0;  //默认次数是0 
    	int ans;        
    	for( int i=1;i<10010;i++)
    	{
    		if(b[i]>max&&b[i]!=0) // 大于保证了输出的是最多并且是最多的中最小的 
    		{
    			 max=b[i]; //这个就是最大次数 
    			 ans=i;
    		}
    	     
    	}
    	cout<<ans<<endl;
    	return 0;	                                                           
    }
    
    展开全文
  • CSP201312-1出现次数最多的数(C++100分) 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的...
  • 然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现次数相同,即并列第一,那么只打印比较小的那个值。  输入格式:第一行是一个整数N,N £ 20;接下来有N行,每...
  • 问题描述  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 ... 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。... 输出这n个次数出现次数最多
  • 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。(这句话关键,错了一次就是没审...
  • PTA题目:求整数序列中出现次数最多的数
  • 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式  输入的第一行只有...
  • step1:找到出现最多数字和出现的次数 var str = '85872637471533203552943982' // 定义一个空对象 var obj = {} // 遍历字符串 for (var i = 0; i < str.length; i++) { // str[i]得到的是对应索引下的...
  • 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式  输入的第一行只有一个正整数n(1...
  • #include<cstdio> #include<cstring> using namespace std; int a[80]={0}; char str[1010]; int main(){ scanf("%s",str); int len=strlen(str),max=0; for(int i=0;... a[str[i]-'0...
  • int con_sub(const string &str, string &ret) ...//连续出现最多次数  int ret_len = 0;//连续出现的字符串的长度  vector strs;//连续出现字符串的起始地址  int len=str.length();  string strte
  • 7-2 求整数序列中出现次数最多的数 (15 分) ...在一行中输出出现次数最多的整数及其出现次数数字间以空格分隔。题目保证这样的数字是唯一的。 输入样例: 10 3 2 -1 5 3 4 3 0 3 2 输出样例: 3 4...
  • 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 ...
  • CSP模拟题201312-1-出现次数最多的数 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。...
  • 求二维数组中重复出现次数最多数字 #include "stdafx.h" int main(int argc, char* argv[]) { int a[3][4]={{0,1,7,2},{3,7,5,7},{7,9,6,6}}; static int b[10][10]; int i,j,count=0,max=-1; for(i=0;i<...
  •  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式  输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。  输入的第二行有n个整数s1, s2, …...
  • 众数是指在一组数据中,出现次数最多的数。例如:1, 1, 3 中出现次数最多的数为 1,则众数为 1。 给定一组数,你能求出众数吗? Input 输入数据有多组(数据组数不超过 50),到 EOF 结束。 对于每组数据: •...
  • 出现次数最多的小写字母 题目描述 输入一个由小写字母组成的字符串(字符数量<=100),输出出现次数最多的小写字母。 注意:如果有多个小写字母出现次数一样多,则输出ASCII码值最大的那个字母。 输入 一个字符...
  • int maxa(int a[],int n) //返回数组a中出现次数最多的整数,相同出现次数的值,仅返回先出现的那个。n是数组a中元素个数。 { int i,k,maxk=0,max=a[0]; for(i=0;i { k=0; for(int j=0;j { if(a[j]==a[i]) { k++; ...
  • 原题目: 编写程序,找出一组输入数据中的最大和最小的数据。在一组数据中出现次数最多的数称为 mode。...2,mode的值不一定唯一,因为:如果出现最多次数是 5,而 a和b分别出现次数都是5次,那a,b都是mo
  • 给定n个正整数,编写一个算法找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入描述 输入的第1行只有一个正整数n,表示数字的个数;输入的第2行有n个整数s1,s2,…,sn。相邻的数用空格...
  • ccf试题1:出现次数最多的数题目分析代码总结 题目 问题描述       给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式   ...
  • 1.首先明白什么是子串,其二注意题目说的是连续出现次数最多的字串。 2.比如字符串abcbcbcabcdbc,这个连续出现次数最多的子串是bc,注意连续出现次数是3次,最后那个bc不能算上,因为它没有连续出现。 3.对于一个...
  • console.log("出现最多次数是" + max); 2.去重 使用索引值等于-1证明不在新数组的方式 var newStr = []; for (var i = 0; i ; i++) { if (newStr.indexOf(str[i]) == -1) { newStr.push(str[i]) } } console.log(...
  • #include #include #include #... 再进行第二次循环,该循环要找到出现次数最多数字,那么就从第一个开始找,条件a[i]>m。这种方法还使得当有两个数字出现次数是一样多的时候,num2是比较小的数。 memset函数
  • 华为机考真题,本人亲身经历,对即将参加华为机试的同学有极大的帮助。
  • // 查找次数最多并且最大得数和次数 Integer[] a = { 5, 3, 4, 7, 2, 1, 1, 5, 2, 7, 8, 3, 42, 5, 325, 2, 5, 325, 53, 2, 213, 6, 767, 5, 7, 12, 213, 324, 24, 5 }; Map<Integer, Integer> map = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,833
精华内容 24,733
关键字:

出现次数最多的数字c++

c++ 订阅