美工网站,协会网站建设,建设特效网站,Dell网站建设建议微博上有个“点赞”功能#xff0c;你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签#xff0c;而你点赞的博文的类型#xff0c;也间接刻画了你的特性。本题就要求你写个程序#xff0c;通过统计一个人点赞的纪录#xff0c;分析这个人的特性。
… 微博上有个“点赞”功能你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签而你点赞的博文的类型也间接刻画了你的特性。本题就要求你写个程序通过统计一个人点赞的纪录分析这个人的特性。
输入格式 输入在第一行给出一个正整数N≤1000是该用户点赞的博文数量。随后N行每行给出一篇被其点赞的博文的特性描述格式为“K F1⋯FK”其中1≤K≤10Fii1,⋯,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
解题思路
定义变量和数组你首先定义了一个整数n来记录特性标签的数量然后定义了一个大小为1001的整数数组a所有元素初始化为0。数组的每个索引对应一个可能的特性标签数组的值表示对应标签在数组中出现的次数。读取输入程序接下来读取特性标签的数量n然后对于每个特性标签程序读取一个数k表示该标签出现的次数。更新数组对于每个特性标签程序会读取k个数字并将这些数字对应的特性标签在数组a中的值加1表示这个标签出现的次数增加了。查找最大值在所有特性标签都被处理过后程序开始查找数组a中出现次数最多的标签。你使用一个变量index来记录当前找到的出现次数最多的标签并在每次遇到新的更大值时更新这个变量。注意你的代码中用了小于等于 的条件来确保当出现次数相同时选择小的标签。只需要保存最大的那个值就可以了。输出结果最后程序打印出出现次数最多的标签的索引和它的出现次数。
程序源码
#includestdio.h // 引入标准输入输出库使得程序可以使用scanf和printf等函数 int main(){ // 主函数开始程序从这里执行 int n,a[1001]{0};//定义a数组数组的元素下标与特性标签的号码一一对应 int i,j,k;//定义循环变量int index0;//index用来记录已经查找过的标签出现次数最多的哪一项 // 定义整数n用于存储特性标签的数量定义一个大小为1001的数组a并将其所有元素初始化为0。这个数组的每个索引i对应一个特性标签i数组a中索引i的值表示特性标签i的出现次数 scanf(%d,n); // 从标准输入读取一个整数并存储到变量n中这个整数表示特性标签的数量 for(i0;in;i){ // 开始一个循环对每个特性标签进行处理 scanf(%d,k); // 从标准输入读取一个整数并存储到变量k中这个整数表示当前特性标签的出现次数 for(j0;jk;j){ // 开始另一个循环对每个特性标签的出现次数进行处理 int num; scanf(%d,num); // 从标准输入读取一个整数并存储到变量num中这个整数表示当前特性标签的出现次数内的某一个数字 a[num]; // 将数组a中对应数字num的元素加1表示数字num出现了一次 } } // 定义一个整数index并将其初始化为0。这个变量用于记录到目前为止出现次数最多的特性标签的索引 for(i0;i1001;i){ // 开始一个循环遍历数组a的所有元素 if(a[index]a[i]){//条件是小于等于以确保出现次数相同时小标签更新为大标签 // 如果当前元素的值小于等于当前最大的出现次数那么更新index为当前元素的索引 indexi; } } printf(%d %d,index,a[index]); // 打印出现次数最多的特性标签的索引和它的出现次数 return 0; // 主函数结束返回0表示程序正常退出
}