好!很有精神! (10分)

在这里插入图片描述

题目描述

海军学校四年级学生衡量一年级学生是否能开军舰靠的是精神值。
精神值的计算公式如下:
$ value=\frac{D*length}{times} $
其中的value代表的的是一年级学生的精神值,D代表一年级学生说话声音的分贝,length记录的是说话的句子长度,times记录的是说话的时间。
而他们会按照如下方式对一年级学生进行测试:在单位时间内(即times=1)让一年级学生依次进行自我介绍,同时记录他们说话声音的分贝,和自我介绍的内容。
现在四年级学生们已经采集了所有一年级学生的数据,他们想请你找到一年级学生里最有精神的学生(即value最大的学生),并让他开军舰。现在请你帮帮忙。

输入格式:

第一行一个正整数n(1≤n≤2⋅10
​^4 ),代表一年级学生的人数。
接下来n行,每行输入格式如下:
name D introdutction
其中name为一个长度不超过20的字符串(即1≤∣name∣≤20),D为正整数,且0≤D≤200,introduction为长度不超过100的字符串(即1≤∣introduction∣≤100)。
所有的字符串仅由小写的英文字母组成

输出格式:

输出共两行,第一行输出最大的精神值。
第二行按照如下格式输出
XXX:hao!hen you jing shen!
其中XXX请替换成精神值最大的一年级学生的名字。
如果有多个精神值最大的学生,请按照输入顺序依此按上述格式输出一年级学生的名字。

输入样例:

1
pingtianyilang 0 aaaaaaa

输出样例:

0
pingtianyilang:hao!hen you jing shen!

提示

对于样例,最有精神的学生是pingtianyilang,其精神值为0×6=0

源代码

#include <stdio.h>
#include <math.h>
#include <string.h>
struct member{
    char name[21];
    int D;
    char introduction[101];
}mem[20000];
int main()
{
    int n,i,j,value,date[20000];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%s %d %s",mem[i].name,&mem[i].D,mem[i].introduction);
        date[i]=mem[i].D*strlen(mem[i].introduction);
    }
    value=date[0];
    for(i=0;i<n;i++)
    {
        if(date[i]>value)
            value=date[i];
    }
    printf("%d\n",value);
    for(i=0;i<n;i++)
    {
        if(date[i]==value)
            printf("%s:hao!hen you jing shen!\n",mem[i].name);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值