c++ - 当用户输入字母 n 作为主要标记时,主要标记将改为由数字表示:
问题描述
我的代码是这样的
#include <iostream>
#include <string>
using namespace std;
int main() {
string z,zz ="";
int x,y;
cin >> x >> y >> z >> zz;
for (int a = 1; a <= x; ++a) {
cout << z;
for (int b = 1; b <= y; ++b) {
cout << zz;
}
}
cout << z;
return 0;
}
如果我的输入是 3 9 na
它应该打印出 0aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3
但是我的代码打印出 naaaaaaaaaaaaaaaaaaaaaaaaaaan
解决方案
如果你:
- 将声明移到
a
外for
循环之外。 - 将这两个
cout << z;
语句更改为cout << a;
. - 将外部
for
循环更改为从 0 而不是 1 开始,并使用<
insted of<=
。
然后你会得到你想要的输出。
#include <iostream>
#include <string>
using namespace std;
int main() {
string z, zz;
int x, y;
cin >> x >> y >> z >> zz;
int a;
for (a = 0; a < x; ++a) {
cout << a;
for (int b = 1; b <= y; ++b) {
cout << zz;
}
}
cout << a;
return 0;
}
请注意,在这种情况下,如果您可以从输入z
中删除,则会变得多余并且可以消除。n
推荐阅读
- css - CSS 计数器重置问题:预期行为还是错误?
- graphql - 有没有办法在运行 jest --watch 时查看所有 .graphql 文件扩展名?
- java - 在 switch 中回到过去的案例
- php - 根据下拉列表中的选定值自动填充文本字段
- c++ - 为什么我们允许基类强制转换为派生类?
- javascript - Javascript图像轮播我创建了抛出错误并且没有滑动到下一张图像我该如何解决它们?
- android - 如何使用终端或命令提示符检查 Active Build Variant?
- selenium - io.github.bonigarcia.wdm.WebDriverManagerException:检测到响应错误:HTTP/1.1 403 Forbidden error using WebDriverManager and FireFox
- basic - 如何在 HTBasic (TransEra) 中做子串?
- sql - 如何使用 DB2 检索每个组中的最后一条记录?