当前位置: 首页 > 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.hskmm.com/?act=detail&tid=36151

相关文章:

  • 数据结构练习
  • newDay14
  • L07_在RuoYI项目中添加自己的接口并实现CRUD功能(轻松+AI版)
  • 10
  • 大二to大三暑假大三上前半学期总结
  • 2025.10.18 刷题
  • 低代码如何推动企业敏捷创新与业务赋能
  • hevc解码器下载
  • 低代码如何成为企业数字化转型的加速器
  • 10.18测试
  • 删除链表的倒数第N个结点-leetcode
  • NOI 八
  • Day1标签的关系与vs的注释
  • 软件工程学习日志2025.10.21
  • [PaperReading] DeepSeek-OCR: Contexts Optical Compression
  • Win10安装WindowsCamera相机
  • 简易的本地部署OI-Wiki方法 for CCSP
  • Say 题选记 (10.19 - 10.25)
  • 宝塔面板
  • React Native 启动流程 (Android版)
  • 以TrustedInstaller/System用户运行软件
  • 10月21号
  • 机器学习基础 -- 线性回归模型
  • 泰勒展开
  • MySQL 创建和授权用户
  • 因果机器学习算法新进展解析
  • 软件工程作业三
  • CF2127 Atto Round 1 (Codeforces Round 1041, Div. 1 + Div. 2) 游记(VP)
  • 一键生成爆款文章,并自动发布!
  • 机器学习到深度学习发展历程