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

C++编程练习

// 阿汪面前有两只盲盒,每只盒子打开都有两种可能:或者装了 X 克狗粮,或者是一只容量为 Y 克的狗粮储蓄盒。如果是狗粮,阿汪可以快乐地吃掉;如果是空储蓄盒,那就倒霉了,阿汪必须想办法找到狗粮把这只储蓄盒装满,自己还吃不到。// 正当阿汪发愁不知道该怎么选的时候,铲屎官大手一挥:“小孩子才做选择,大人全都要!”但全都要的结果,却不一定是赚了还是亏了……// 我们假设聪明的阿汪总是能嗅出狗粮最多的盒子,并且绝不会选任何储蓄盒。而铲屎官没有这样的鼻子,他一定是全都要。铲屎官如果打开了有储蓄盒的盒子,就必须想办法把储蓄盒装满,他会优先用另一只盒子里的狗粮装(如果另外一只盒子里有狗粮),不够了还得自己去买新的狗粮,这样阿汪可就亏啦,什么都吃不到了。本题就请你判断阿汪到底是赚了还是亏了。// 输入格式:
// 输入在一行中给出两个整数,绝对值都不超过 100,中间用一个空格分开,分别代表两只盒子里的东西。如果是正数就表示是狗粮的份量,如果是负数就表示绝对值是空盆的容量。两个数都肯定不是 0,因为保证没有空盒子。// 输出格式:
// 第一行输出两个结果:如果让阿汪选能吃到的狗粮 A,和如果铲屎官全都要能吃到的狗粮 B。两个数字间用一个空格分开。如果铲屎官的决定让阿汪赚到了,就在第二行输出一个笑脸 ^_^,否则输出一个哭脸 T_T。但如果反正什么都吃不到(两个盒子里都没有狗粮),就输出一张躺平脸 -_-。
#include <iostream>
#include <algorithm>
using namespace std;int main() {int a, b;cin >> a >> b;int A = max(a > 0 ? a : 0, b > 0 ? b : 0);//A:狗对两个盒子的选择int B = 0;//B:人的方法能吃到的狗粮数if (a > 0 && b > 0) {//①两个盒子中都有狗粮B = a + b;  } else if (a > 0 || b > 0) {//②两个盒子中只有一个有狗粮int food = max(a, b); int box = min(a, b);   if (food >= -box) {B = food + box;   } else {//③两个盒子都没有狗粮,无论怎样都吃不到B = 0;            }}cout << A << " " << B << endl;if (A == 0 && B == 0) {cout << "-_-" << endl; //两个盒子都为0} else if (B > A) {cout << "^_^" << endl;//人的方法吃得更多} else {cout << "T_T" << endl;//狗的方法吃得更多
    }return 0;
}
//模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。// 输入格式:
// 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。// 输出格式:
// 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

#include <iostream>
#include <string>
using namespace std;
int main() {string s;cin >> s;//输入算式int result = 0;int num = 0;char sign = '+';int i = 0;while (isdigit(s[i])) {num = num * 10 + (s[i] - '0');i++;}//识别数字result = num;while (i < s.length()) {sign = s[i];//将当前遇到的运算符赋值给signi++;if (sign == '=') {//判断当前运算符是否是象征终止运算的=cout << result << endl;break;}if (sign != '+' && sign != '-' && sign != '*' && sign != '/') {//判断是否有不合法的运算符cout << "ERROR" << endl;return 0;}num = 0;while (i < s.length() && isdigit(s[i])) {num = num * 10 + (s[i] - '0');i++;}//判断下一个参与运算的数字是多少if (sign == '+') {result += num;} else if (sign == '-') {result -= num;} else if (sign == '*') {result *= num;} else if (sign == '/') {if (num == 0) {cout << "ERROR" << endl;return 0;}result /= num;}//进行运算
    }return 0;
}

 

http://www.zskr.cn/news/26794.html

相关文章:

  • L07_在RuoYI项目中添加自己的接口并实现CRUD功能(轻松+AI版)
  • hevc解码器下载
  • [网络] [iproute2] tc命令:Linux网络异常模拟(Network Emulation, netem)指南
  • NOI 八
  • 10.18测试
  • [PaperReading] DeepSeek-OCR: Contexts Optical Compression
  • Win10安装WindowsCamera相机
  • 简易的本地部署OI-Wiki方法 for CCSP
  • [systemd] 如何为systemd服务进行资源限制
  • 宝塔面板
  • 机器学习基础 -- 线性回归模型
  • 软件工程作业三
  • 一键生成爆款文章,并自动发布!
  • 1188. 设计有限阻塞队列
  • MySQL分页解决方案
  • Failed to resolve: org.webrtc:google-webrtc:1.0.32006
  • 日总结 15
  • NVIDIA Triton服务器漏洞危机:攻击者可远程执行代码,AI模型最高权限告急
  • lgP14254 分割(divide)
  • 2025.10.21
  • 化学同位素
  • equal和hashcode
  • NOIP 二十五
  • 「清华集训2014-主旋律」题解
  • 第二次高级程序作业
  • 大学生需要认真听课的肌肉记忆(注意力训练)
  • AWS IAM角色最佳实践:构建云安全的核心防线
  • 初始人工智能和机器学习
  • 盒子模型外边距合并问题
  • o(N^2)找出所有回文子串