给定一个字符串列表,每个字符串可以是以下4种类型之一,•整数(一轮的分数):直接表示你在这一轮得到的分数。
•“十”(一轮的分数)::表示你在这轮得到的分数是最后两轮有效分数的总和。
•“D”(一轮的分数):表示你在这一轮得到的分数是上一轮有效分数的翻倍数据。
•“c”(个操作,不是一轮的分数):表示上一轮有效的分数是无效的,应该
被删除。
大二c语言练习如图所示,
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 快乐鹦鹉 2022-11-08 14:03关注
输入是 52CD+这五个字符这样子吗?还是你例子中还有一堆双引号和括号啥的?
搞个数组,记录每轮的分数,并记录有效轮数。如果为C,则轮数减去1。最后把所有有效轮数的分数相加就行了#include<iostream> using namespace std; int main() { char a[1001] = {0}; int s[1000] = {0},n=0,i=0,sum=0; gets_s(a); while(a[i] != '\0') { switch(a[i]) { case 'C': { if(n>0) n--; } break; case 'D': { if(n>0) { s[n] = s[n-1] * 2; n++; } } break; case '+': { if(n>1) { s[n] = s[n-1]+s[n-2]; n++; } else if(n==1) { s[1] = s[0]; n=2; } } break; default: { s[n] = a[i]-'0'; n++; } break; } i++; } for(i=0;i<n;i++) sum += s[i]; cout<<sum<<endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 stm32代码移植没反应
- ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
- ¥100 连续两帧图像高速减法
- ¥15 组策略中的计算机配置策略无法下发
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊