当前位置: 首页 > news >正文

免费推广神器seo关键词优化

免费推广神器,seo关键词优化,肇庆做网站公司,手抄报模板网题目描述 某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数据库里面统计了每个开源项目关注、收藏、fork、issue、M…

题目描述

某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。

数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量,开源项目的热度根据这5个维度的加权求和进行排序。

H = (Wwatch * #watch) + (Wstar * #star) + (Wfork * #fork) +  (Wissue * #issue) + (Wmr * #mr)

H表示热度值
Wwatch、Wstar、Wfork、Wissue、Wmr分别表示5个统计维度的权重。
#watch、#star、#fork、#issue、#mr分别表示5个统计维度的统计值。
榜单按照热度值降序排序,对于热度值相等的,按照项目名字转换为全小写字母后的字典序排序(‘a’,‘b’,‘c’,…,‘x’,‘y’,‘z’)。

输入描述

第一行输入为N,表示开源项目的个数,0 < N <100。

第二行输入为权重值列表,一共 5 个整型值,分别对应关注、收藏、fork、issue、MR的权重,权重取值 0 < W ≤ 50。

第三行开始接下来的 N 行为开源项目的统计维度,每一行的格式为:

name nr_watch nr_start nr_fork nr_issue nr_mr

其中 name 为开源项目的名字,由英文字母组成,长度 ≤ 50,其余 5 个整型值分别为该开源项目关注、收藏、fork、issue、MR的数量,数量取值 0 < nr ≤ 1000。

输出描述

按照热度降序,输出开源项目的名字,对于热度值相等的,按照项目名字转换为全小写后的字典序排序(‘a’ > ‘b’ > ‘c’ > … > ‘x’ > ‘y’ > ‘z’)。

用例1

输入

4
8 6 2 8 6
camila 66 70 46 158 80
victoria 94 76 86 189 211
anthony 29 17 83 21 48
emily 53 97 1 19 218

输出

victoria
camila
emily
anthony

说明

排序热度值计算:
camila: 668 + 706 + 462 + 1588 + 806 = 2784
victoria: 94
8 + 766 + 862 + 1898 + 2116 = 4158
anthony: 298 + 176 + 832 + 218 + 486 = 956
emily: 53
8 + 976 + 12 + 198 + 2186 = 2468

用例2

输入

5
5 6 6 1 2
camila 13 88 46 26 169
grace 64 38 87 23 103
lucas 91 79 98 154 79
leo 29 27 36 43 178
ava 29 27 36 43 178

输出

lucas
grace
camila
ava
leo

说明

排序热度值计算:
camila: 135 + 886 + 466 + 261 + 1692 = 1233
grace: 64
5 + 386 + 876 + 231 + 1032 = 1299
lucas: 915 + 796 + 986 + 1541 + 792 = 1829
leo: 29
5 + 276 + 366 + 431 + 1782 = 922
ava: 295 + 276 + 366 + 431 + 178*2 = 922

代码

// 引入必要的头文件,用于输入输出和字符串处理
#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 定义项目结构体,包含项目名和热度值
typedef struct {char name[50]; // 项目名字,由英文字母组成,长度不超过50int h;        // 项目热度值
} project;// 自定义排序函数,用于qsort进行排序,根据热度值降序及名字字典序升序排列
int cmp(const void *a, const void *b) {// 将void指针类型转换为project结构体指针project *A = (project *)a;project *B = (project *)b;// 如果两个项目的热度值不相等,则按照热度值降序排列if (A->h != B->h) {return B->h - A->h; // 返回差值,使大热度值的项目排在前面} // 若热度值相等,则按照项目名字全小写后的字典序升序排列else {return strcmp(A->name, B->name); // 使用strcmp比较字符串,返回负数、零或正数,以实现升序排序}
}int main() {// 读取开源项目个数nint n;scanf("%d", &n);// 初始化权重数组weight,存储5个维度的权重值int weight[5];for (int i = 0; i < 5; i++) {scanf("%d", &weight[i]); // 读取每个维度的权重值}// 初始化项目结构体数组p,存储所有开源项目的相关信息project p[n];// 遍历所有项目,读取并计算每个项目的热度值for (int i = 0; i < n; i++) {scanf("%s", p[i].name); // 读取项目名int hot = 0; // 初始化当前项目的热度值为0for (int j = 0; j < 5; j++) {int score; // 当前维度的统计值scanf("%d", &score); // 读取统计值hot += score * weight[j]; // 根据权重计算热度值}p[i].h = hot; // 存储计算出的热度值到项目结构体中}// 使用qsort对项目结构体数组按照cmp函数规则进行排序qsort(p, n, sizeof(project), cmp);// 输出排序后的项目名for (int i = 0; i < n; i++) {printf("%s\n", p[i].name);}return 0; // 主函数返回0,表示程序执行成功
}

注意:

1、strcmp()

strcmp() 是C语言中用于比较两个字符串的库函数,它定义在 <string.h> 头文件中。该函数用于比较两个字符串的内容,并根据比较结果返回一个整数值。

函数原型为:

int strcmp(const char *str1, const char *str2);

参数说明:

  • str1:指向第一个字符串的指针。
  • str2:指向第二个字符串的指针。

函数功能:

  • 比较字符串 str1str2,逐个字符进行比较,直到遇到不同的字符或遇到’\0’(字符串结束符)为止。
  • 如果 str1 和 str2 所有相同位置上的字符都相等,则认为两个字符串相等,返回 0。
  • 如果 str1 和 str2 在某个位置上的字符不相等,则以ASCII码值大小作为判断依据,返回值为正、负或零:
    • 返回值 > 0,表示 str1 中对应位置的字符大于 str2 中的字符,即 str1 字符串大于 str2 字符串;
    • 返回值 < 0,表示 str1 中对应位置的字符小于 str2 中的字符,即 str1 字符串小于 str2 字符串;
    • 返回值 = 0,表示两个字符串相等。

2、“->”是否可以使用“.”替代

int cmp(const void *a, const void *b) {project *A = (project *)a;project *B = (project *)b;if (A->h != B->h) {return B->h - A->h;} else {return strcmp(A->name, B->name);}
}  
其中的“->”是否可以使用“.”替代

在C语言中,结构体成员的访问有两种方式:.->。当操作的对象是指向结构体的指针时,必须使用->来访问结构体成员;而如果操作的对象本身就是结构体变量,则可以使用.来访问成员。

在这个特定的cmp函数中,由于传入的是指向project结构体的指针(void *avoid *b),所以在转换类型后,应当使用->来访问结构体中的成员(如A->hA->name)。因此,在这个上下文中不能使用.替代->

文章目录

  • 题目描述
  • 输入描述
  • 输出描述
  • 用例1
  • 说明
  • 用例2
  • 说明
  • 代码
  • 注意:
    • 1、strcmp()
    • 2、“->”是否可以使用“.”替代

http://www.yayakq.cn/news/75668/

相关文章:

  • 怎么做企业网站平台快速建站php
  • 维护网站一年多少钱传奇霸主官方网站
  • 怎么用宝塔做网站谷歌推广公司哪家好
  • 如何提高网站访客数德州做网站dzqifan
  • 重庆建站管理系统价格此网站正在建设中页面
  • 公司请做网站自媒体平台排行榜前十名
  • 宁波营销网站建设电商外贸网站建设
  • 政务内网网站群建设方案建e网3d模型库
  • dede网站模板怎么安装教程彩票销信 网站怎么做
  • 做网赌网站怎么推广wordpress 加背景音乐
  • 杭州模板网站建设系统苏州的建筑公司网站
  • 合肥效果好的网站推广做网站怎么做付费推广
  • 怎么通过做网站赚钱吗婚纱摄影图片
  • 深圳前50强网站建设公司做彩票网站推广犯法吗
  • 做ppt做好的网站asp.net 网站 价格
  • 英文网站建设的问题伊犁建设网站公司
  • 网站建设预算项目火车头采集器wordpress下载
  • 图片设计软件有哪些seo网站论文
  • 杭州萧山门户网站建设公司电商网站建设与运行
  • 宁夏建设工程交易中心网站泰安优亿昊网络科技有限公司
  • 标志设计网站推荐亚洲网站正在建设中
  • python 做网站 案例顺德大良哪家做网站好
  • 网站建设主要考虑哪些因素asp.net网站开发典型模块与实例精讲
  • 襄阳做网站广州网站开发哪家强
  • 南海区住房城乡建设和水务局网站餐饮营销引流都有什么方法
  • 做证书的网站企业建设网站维护
  • 专门做同人h的网站商业网站开发 说课
  • 北京工商局网站怎么做增资浙江省城乡和建设厅网站首页
  • 如何更改asp网站自定义产品顺序WordPress博客设置最新文章
  • 网站开发所需人员如何让自己做的网站在google搜索引擎上搜到