欢迎光临散文网 会员登陆 & 注册

【稽音のC语言】周刊虚拟歌手中文曲排行榜(中V周刊)得点计算器的C语言程序编写

2023-03-07 22:28 作者:稽音びた_Respawn  | 我要投稿

最近大学刚好开始了C语言的学习,因为高中信息技术课上也学过一点最基础的C语言知识

所以写起来比较轻松,除了最后隐式转化为浮点运算没学过,问了下我们课程老师,基本没什么问题。

  1. 中V周刊计算的程序

首先我们有了基础变量:播放量(章节数默认为1),评论,弹幕,收藏,点赞,硬币

接着我们有了计算逻辑。

对于播放得点,我们继续设置中间变量,因为最后还要结合修正B算最终得点。

修正C同理。

此时,我们可以通过一系列if和else的简单嵌套来实现。

当修正B>50或修正C>20时,可以使用goto语句(少用为好)返回输入变量的环节。

最后,计算修正A和最终得点

然后我们让系统输出几个数据,执行完成。

2.程序设计实例(欢迎提出改进建议)

#include <stdio.h>

#include <math.h>

int main()

{int playnumber,danmakunumber,coinnumber,likenumber,collectionnumber,commentnumber,midplay,midlike,finalplay,finallike;

//构建变量存储播放,弹幕,硬币,点赞,收藏,评论,以及两个得点的数据

float fixA,fixB,fixC;

//构建变量存储修正数值

L1:printf("请输入播放数\n");

scanf("%d",&playnumber);

printf("请输入弹幕数\n");

scanf("%d",&danmakunumber);

printf("请输入硬币数\n");

scanf("%d",&coinnumber);

printf("请输入点赞数\n");

scanf("%d",&likenumber);

printf("请输入收藏数\n");

scanf("%d",&collectionnumber);

printf("请输入评论数\n");

scanf("%d",&commentnumber);

//导入曲目在b站的各项数据

if (playnumber>10000)

midplay=playnumber/2+5000;

else

midplay=playnumber;

//基础播放>10000时,播放得点=播放量/2+5000

if (likenumber>2000)

    midlike=likenumber*2+4000;

else

    midlike=likenumber*4;

//基础播放>2000时,点赞得点计算

fixB=(collectionnumber*1.0/playnumber)*250.0;

//利用隐式转化进行浮点运算,得到修正B

if (fixB>50.0)

{printf("修正B数值大于50,请重新输入数据 \n");

goto L1;}

//修正B上限为50的情况

else

fixC=(coinnumber*1.0/playnumber)*150.0;

//利用隐式转化进行浮点运算,得到修正B

if (fixC>20.0)

{printf("修正C数值大于20,请重新输入数据 \n");

goto L1;}

//修正C上限为20的情况

else

if (fixB<10.0)

finalplay=midplay*fixB*0.1;

else

    finalplay=midplay;

//最终播放得点计算

if (fixC<5.0)

    finallike=midlike*fixC*0.2;

else

    finallike=midlike;

//最终点赞得点计算

fixA=pow((finalplay+collectionnumber)/(finalplay+collectionnumber+danmakunumber*10.0+commentnumber*20.0),2.0);

//修正A计算

printf("修正A:%f\n",fixA);

printf("修正B:%f\n",fixB);

printf("修正C:%f\n",fixC);

//输出三项修正值

float score=finalplay+(commentnumber*25.0+danmakunumber)*fixA+collectionnumber*fixB+finallike+coinnumber*fixC;

//最终得分计算

printf("您的最终得点是:%f\n",score);

//输出最终得点

return 0;

}


3.程序运行实测

用周刊551期,我的27位作品《匿名L》进行计算

结果如下:

得点29844分(四舍五入保留整数)

修正A 0.74

修正B 9.69

修正C 1.83

周刊显示结果:得点29865分

修正A 0.70

修正B 9.69

修正C 1.83

结果误差

得点相差21分

修正A相差0.04

修正BC几乎没有任何误差

可以看出还是相对比较准确的。

各位P主可以用来计算自己的VOCALOID得点~从而推断在周刊中的位置!


下载链接:

链接:https://pan.baidu.com/s/1WAtkuvcFjgel3U6SsIDabQ 

提取码:CNVC


感谢各位支持!

【稽音のC语言】周刊虚拟歌手中文曲排行榜(中V周刊)得点计算器的C语言程序编写的评论 (共 条)

分享到微博请遵守国家法律