微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。

输入格式:

输入在第一行给出一个正整数N≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1FK”,其中1≤K≤10Fii=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输出格式:

统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。

输入样例:

4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123

输出样例:

233 3

实现代码:

分析:使用 arr[1001]存储每个性格标签出现的次数,遍历 arr 数组,找到出现次数最多的保存为 maxValue,并保存其下标为 maxIndex。 maxIndex 就是出现次数最多的特性标签,maxValue 就是该特性标签出现的次数。 标题难点,是读懂题意!读题非常非常重要!!!

#include<iostream>
using namespace std;
const int N=1e3+5;
int n,k,num,arr[N],maxnum,maxcnt;
int main()
{
    cin>>n;
    while(n--){
        cin>>k;
        while(k--){
         cin>>num;
            arr[num]++;
        }
    }
    for(int i=0;i<N;i++){
        if(arr[i]>=maxcnt){
            maxcnt=arr[i];
            maxnum=i;
        }
    }
    cout<<maxnum<<' '<<maxcnt;
    return 0;
}

知识点:

const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。

C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。

const int  a = 7;  
int  b = a; // 正确
a = 8;       // 错误,不能改变

a 被定义为一个常量,并且可以将 a 赋值给 b,但是不能给 a 再次赋值。对一个常量赋值是违法的事情,因为 a 被编译器认为是一个常量,其值不允许修改。

实例

#include<iostream>
using namespace std;  
int main(void)
{
    const int  a = 7;
    int  *p = (int*)&a;
    *p = 8;
    cout<<a;
    system("pause");
    return 0;
}

对于 const 变量 a,我们取变量的地址并转换赋值给 指向 int 的指针,然后利用 *p = 8; 重新对变量 a 地址内的值赋值,然后输出查看 a 的值。