- 定位:2020年第十一届蓝桥杯省赛C/C++ B组试题G(7月试题)
- 原题:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/35d4c64d5446e5417092600fcf167b95.png)
- 属性:字符读入+模拟
- 难度:破壳
- 独白:
这题我们采用边读取字符边模拟判断的策略来做,即用这样的while循环:while((ch=getchar())!='\n')
来解决问题。
读取到的字符如果不是数字字符,那便直接输出;若是数字字符,那我们便输出数字字符前的字符,重复次数依据数字字符的数值大小减1,这里可以再套用一个while循环来解。
总的来说这题比较简单,基础好一点的,基本没问题。
Tips:
puts()—输出的是字符串。
putchar()—输出的是字符。 - 代码:
#include<iostream>
#include<cstdio>
using namespace std;
char ch,chx;
int n;
int main()
{
while((ch=getchar())!='\n'){
if(ch>='1'&&ch<='9'){
n=ch-'0';
while(n>1){
putchar(chx);
n--;
}
}else{
putchar(ch);
chx=ch;
}
}
return 0;
}
- 总结:边读取边模拟是解决字符串问题的一个好策略。
- 感悟:守住内心的田野。
- 归档:已归档。