HDU——2090.算菜价、2091.空心三角形、2093.考试排名

2090.算菜价

题目描述

Problem - 2090

Problem Description

妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。

Input

输入含有一些数据组,每组数据包括菜种(字串),数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的。

Output

支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉。最后,请输出一个精度为角的菜价总量。

运行代码

#include <iostream>
#include<string>
using namespace std;
int main() {string name;double n, m, sum = 0.0;while (cin >> name >> n >> m)sum += n* m;printf("%.1f\n", sum);return 0;
}

代码思路

  1. 引入所需头文件:<iostream> 用于实现输入输出功能,<string> 用于使用字符串类型。
  2. 声明命名空间 std,这样就可以在代码中直接使用标准库中的函数和对象,而不需要每次都加前缀 std::
  3. 定义主函数 int main(),这是C++程序的入口点。
  4. 在主函数内声明变量:
    • string name; 用于存储菜的名字。
    • double n, m, sum = 0.0; 定义了三个双精度浮点数变量,其中 n 和 m 分别表示菜的数量以及单价,sum 初始化为0,用于累计所有菜的价格。
  5. 使用 while (cin >> name >> n >> m) 循环读取输入:
    • 这里使用了C++的输入流 cin 从标准输入(通常是键盘)读取数据。每次循环都会尝试读取一个菜名(字符串)、一个数量(double类型)和一个单价(double类型)。当读取成功时,循环继续;如果遇到输入结束(如文件尾或用户中断),则循环终止。
    • 在循环体内,菜的价格累加,数量乘以单价。
  6. 循环结束后,使用 printf("%.1f\n", sum); 输出累计的菜价,格式化字符串 "%.1f" 指定输出一个浮点数,并保留一位小数。
  7. return 0; 表示程序正常结束,返回值0通常表示成功执行。

2091.空心三角形

题目描述

Problem - 2091

Problem Description

把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。

Input

每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。

Output

每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。

运行代码

#include<iostream>
#include<string>
using namespace std;
void print(char str, int n) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n - i; j++)cout << " ";if (i != n) {for (int j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1)cout << str;else cout << " ";}}else {for (int j = 1; j <= 2 * i - 1; j++)cout << str;}cout << endl;}
}
int main() {char str;int n;bool s = false;while (cin >> str) {if (str == '@') break;cin >> n;print(str, n);s = true;}return 0;
}

代码思路

  1. 包含头文件:首先,代码通过#include指令包含了iostreamstring两个标准库,分别用于处理输入输出和字符串操作。

  2. 命名空间使用using namespace std;这一行是为了避免在使用标准库中的功能时频繁地写出std::前缀。

  3. print函数定义

    • 函数接收两个参数:一个字符str用于构建金字塔,一个整数n表示金字塔的高度。
    • 使用两层嵌套循环来控制每一层的打印。外层循环变量i控制行数(从1到n),内层循环分别控制每行的空格和字符打印。
    • 首先打印每行开始的空格,数量由n - i决定,以保证金字塔的形状。
    • 接着,判断是否为金字塔的最后一行(即i == n),如果是,则该行全部打印字符str;否则,按照金字塔形状打印字符和空格。首尾字符一定是str,中间用空格填充。
    • 每完成一行的打印后,输出换行符endl
  4. main函数逻辑

    • 初始化一个布尔变量sfalse,用来标记是否有有效输入。
    • 使用一个while循环持续读取用户输入,直到遇到字符'@'为止。
    • 在循环中,首先读取一个字符,然后读取一个整数,这两个值分别赋给strn
    • 调用print函数,传入读取到的字符和高度,打印相应的金字塔图案。
    • 设置strue,表示至少有一次有效输入。
    • 当用户输入'@'结束循环后,程序返回0,正常终止。

2093.考试排名

题目描述

Problem - 2093

Problem Description

C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能是怎么实现的呢?
我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题“AC”后,就要与你算一算帐了,总共该题错误提交了几回。虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分。这样一来,你在做出的题数上,可能领先别人很多,但是,在做出同样题数的人群中,你可能会在耗时上处于排名的劣势。
例如:某次考试一共8题(A,B,C,D,E,F,G,H),每个人做的题都在对应的题号下有个数量标记,负数表示该学生在该题上有过的错误提交次数,但到现在还没有AC,正数表示AC所耗的时间,如果正数a跟上一对括号,里面有个整数b,那就表示该学生提交该题AC了,耗去了时间a,同时,曾经错误提交了b次,因此对于下述输入数据:

若每次错误提交的罚分为20分,则其排名从高到低应该是这样的:
Josephus 5 376
John 4 284
Alice 4 352
Smith 3 167
Bob 2 325
Bush 0 0

Input

输入数据的第一行是考试题数n(1≤n≤12)以及单位罚分数m(10≤m≤20),每行数据描述一个学生的用户名(不多于10个字符的字串)以及对所有n道题的答题现状,其描述采用问题描述中的数量标记的格式,见上面的表格,提交次数总是小于100,AC所耗时间总是小于1000。

Output

将这些学生的考试现状,输出一个实时排名。实时排名显然先按AC题数的多少排,多的在前,再按时间分的多少排,少的在前,如果凑巧前两者都相等,则按名字的字典序排,小的在前。每个学生占一行,输出名字(10个字符宽),做出的题数(2个字符宽,右对齐)和时间分(4个字符宽,右对齐)。名字、题数和时间分相互之间有一个空格。

运行代码

#include<iostream>
#include<string>
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
struct student {string name;int num;int time;
};
bool compare(student a, student b) {if (a.num == b.num && a.time == b.time)return  a.name < b.name;elseif (a.num == b.num)return a.time < b.time;elsereturn a.num > b.num;
}
int main()
{student stu[10005];int n, m, numstu = 0;cin >> n >> m;string s;getchar();while (cin >> s) {int k = 10 - s.length();while (k--)s.append(" ");stu[numstu].name = s;stu[numstu].num = 0;stu[numstu].time = 0;int num = n;while (num--) {string score;cin >> score;if (score.find('-') != -1 || score.compare("0") == 0)continue;stu[numstu].num++;int time = 0;int fatime = 0;for (int i = 0; i < score.length(); i++) {if (score[i] >= '0' && score[i] <= '9')time = time * 10 + score[i] - 48;if (score[i] == '(') {for (int j = i + 1; j < score.length() - 1; j++) {fatime = fatime * 10 + score[j] - 48;}break;}}stu[numstu].time += time + fatime * m;}numstu++;}sort(stu, stu + numstu, compare);for (int i = 0; i < numstu; i++) {cout << stu[i].name << " ";if (stu[i].num < 10)cout << " ";cout << stu[i].num << " ";if (stu[i].time < 10)cout << "   ";else if (stu[i].time < 100)cout << "  ";else if (stu[i].time < 1000)cout << " ";cout << stu[i].time << endl;}return 0;
}

代码思路

  1. 定义了一个 student 结构体来表示学生的信息,包括姓名、答题数量和答题总时间。
  2. compare 函数用于定义结构体比较的规则,先按照答题数量降序排序,数量相同则按答题时间升序排序,再相同则按姓名字典序排序。
  3. 在 main 函数中:
    • 首先读取题目数量 n 和每题分值 m 。
    • 通过循环不断读取学生姓名,并初始化该学生的结构体信息。
    • 然后对于每个学生,再读取 n 个答题情况。如果答题情况不是 - 或 0,则增加答题数量,并从答题情况中解析出答题时间和额外时间,计算并累加到该学生的总时间。
    • 所有学生信息读取处理完后,使用自定义的比较函数对学生结构体数组进行排序。
    • 最后遍历排序后的数组,按照特定格式输出每个学生的姓名、答题数量和答题总时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Adobe XD是否收费?试试这几款超值的免费软件吧!

Adobe XD是一站式的 UX/UI 设计平台&#xff0c;设计师可以使用Adobe XD完成移动应用app界面设计、网页设计、原型设计等。Adobe XD也是一款结合原型和设计&#xff0c;提供工业性能的跨平台设计产品。而Adobebe。 XD跨平台的特点得到了很好的弥补 Sketch 没有 Windows 版本的缺…

网安人必备!开源网络安全工具TOP 10(附下载地址)

工欲善其事&#xff0c;必先利其器。对于广大的网络安全从业者&#xff0c;以及未来想要从事网络安全的人来说&#xff0c;选择并善用合适的网络安全工具&#xff0c;能有效提升工作效率。 开源网络安全工具之所以能够在众多安全解决方案中脱颖而出&#xff0c;不仅是因为它们…

C++ 68 之 类模版作函数的参数

#include <iostream> // #include <cstring> #include <string> using namespace std;template<class T1, class T2> // 可以设置默认的类型值&#xff0c;后面在使用的时候&#xff0c;就不用再指定类型了 class Students08{ public:T1 m_name;T2 m_a…

SysTools MailXaminer: 电子邮件取证调查中的链接分析和时间线分析

天津鸿萌科贸发展有限公司是 SysTools 系列软件的授权代理商。 SysTools MailXaminer 电子邮件取证软件提供全面强大的解决方案&#xff0c;通过简化的操作&#xff0c;从电子邮件客户端、网络邮箱服务器、磁盘镜像、Skype 通讯工具中解密并搜索证据。软件对调查工作的每一阶段…

c++参考std::string自己设计类hstring

目录 一、前言 二、设计需求 三、设计思想 1.功能一 1.功能二 四、设计过程 1.类hstring搭建 2. 实现有参构造函数 3. 实现副本构造函数 4.完整代码 五、结束语 一、前言 在c中有很多的库&#xff0c;但是在有些时候呢&#xff0c;我们一定要学会自己去设计库&#…

文件扫描工具都有哪些?职场大佬都在用的文本提取工具大盘点~

回想起刚毕业初入职场那阵子&#xff0c;领导让帮忙把纸质文件扫描提取为文本时&#xff0c;还只会傻乎乎地一点点操作&#xff0c;属实是费劲得很&#xff01; 好在后面受朋友安利&#xff0c;找到了4个能够快速实现文件扫描文字提取的方法&#xff0c;这才让我的办公效率蹭蹭…

关于自学\跳槽\转行做网络安全行业的一些建议

很好&#xff0c;如果你是被题目吸引过来的&#xff0c;那请看完再走&#xff0c;还是有的~ 为什么写这篇文章 如何自学入行&#xff1f;如何小白跳槽&#xff0c;年纪大了如何转行等类似问题 &#xff0c;发现很多人都有这样的困惑。下面的文字其实是我以前的一个回答&#…

MyBatis-For input string: “oqm“ 异常

前言 具体的异常信息如下&#xff1a; Error attempting to get column open_id from result set. Cause: java.lang.NumberFormatException: For input string: "oqmJX5ZPU1KOv-YDt30GNAN-Zefk" 乍一看下其实就是无法把open_id字符串类型转为数字类型进行赋值&…

synchronized原理

当线程释放锁&#xff0c;JMM会把线程对应的本地的内存中的共享变量刷新到内存中 当线程获取锁&#xff0c;JMM会帮其他线程中对应的本地的内存中的共享变量设置未无效&#xff0c;从而监视器保护的临界区的代码必须从内存中读取共享变量。&#xff08;临界区为锁之间的代码&am…

3D模型可视化引擎HOOPS Communicator与Visualize的统一化文件加载解决方案

在当今数字化时代&#xff0c;3D可视化技术已成为工程设计、建筑规划和游戏开发等多个领域的核心技术。Tech Soft 3D公司凭借其创新的HOOPS Communicator和HOOPS Visualize两款开发包&#xff0c;分别针对Web端和桌面端提供了强大的3D可视化解决方案。然而&#xff0c;由于两者…

第三集《唯识与净土》

和尚尼慈悲&#xff01;诸位法师、诸位居士&#xff0c;阿弥陀佛&#xff01; 请大家打开讲义第六面&#xff0c;三、业果强弱。 我们身为一个有情众生&#xff0c;在我们的生命当中&#xff0c;我们曾经出现过很多痛苦的果报&#xff0c;当然也出现过很多安乐的果报&#xff0…

c语言回顾-结构体(2)

前言 前面讲了结构体的概念&#xff0c;定义&#xff0c;赋值&#xff0c;访问等知识&#xff0c;本节内容小编将讲解结构体的内存大小的计算以及通过结构体实现位段&#xff0c;话不多说&#xff0c;直接上干货&#xff01;&#xff01;&#xff01; 1.结构体内存对齐 说到计…

物联网技术-第3章物联网感知技术-3.2定位技术

目录 1.1位置信息和位置服务 1.1.1位置信息 1.1.2位置服务 1.2主流定位系统 1.2.1卫星定位系统&#xff08;Satellite Positioning Systems&#xff09; 1.2.2移动通信蜂窝基站定位&#xff08;Cellular Triangulation or Advanced Forward Link Trilateration&#xff09…

大学物理绪论组收集和分析

目录 ​编辑 随机误差的估计 算术平均值的标准偏差 不确定度&#xff08;Uncertainty&#xff09;是测量学中的一个重要概念&#xff0c;用于表示测量结果的可靠程度。它反映了测量值可能偏离真值&#xff08;即被测量的客观真实值&#xff09;的程度。 A类不确定度的计算方…

健身小程序:智能化助力个人健身旅程

一、智能化功能的核心 健身小程序的智能化功能主要体现在以下几个方面&#xff1a; 智能健身计划推荐&#xff1a;小程序内置了先进的算法&#xff0c;能够根据用户的身体状况、健身目标和时间安排&#xff0c;智能推荐个性化的健身计划。这些计划不仅科学合理&#xff0c;而且…

ThreeJS-截屏下载pdf或者图片时白屏

JS-页面截图下载为pdf 关于如何下载为 pdf 在上面的这篇文章中有写&#xff0c;大家可以看下&#xff0c;下载图片代码在最下面 这时我们发现 three 部分是空白的如下&#xff1a; 这就多少有点尴尬了&#xff0c;这时我们习惯性的看下后台报错 是不是发现了惊喜&#xff0c;…

足底筋膜炎怎么治疗效果好得快

足底筋膜炎症状&#xff1a;疼痛是足底筋膜炎最典型和常见的症状。患者通常会感到足跟或足底区域的疼痛&#xff0c;这种疼痛可能表现为刺痛、钝痛或灼热感。疼痛的程度和频率因人而异&#xff0c;但通常会在早晨起床后或长时间休息后首次站立时最为明显。这是因为休息时足底筋…

eclipse宝刀未老

Theia 是一个高度可定制的、开源的、基于 Web 的集成开发环境&#xff08;IDE&#xff09;框架。它由 Eclipse Foundation 主导&#xff0c;旨在为云和本地环境提供现代化的、全功能的 IDE 解决方案。Theia 的核心目标是提供一个灵活的平台&#xff0c;开发者可以根据自己的需求…

睡眠脑电 | 多导睡眠图技术

摘要 多导睡眠图(PSG)一词由Holland等人于1974年提出&#xff0c;用于描述在睡眠期间同时记录、分析和解释多个生理特征。PSG是诊断睡眠障碍患者和增进我们对正常睡眠认识的重要工具。这是一个复杂的过程&#xff0c;应由训练有素的技术人员执行。本文回顾了多导睡眠图(PSG)的…

C#.Net筑基-类型系统②常见类型

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型&#xff0c;常用于定义一些简单&#xff08;轻量&#xff09;的数据结构。对于一些局部使用的数据结构&#xff0c;优先使用结构体&#xff0c;效率要高很多。 可以有构造函数&#xff0c;也可以没有。因此初始…