首页 > 解决方案 > 当用户输入字母 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

标签: c++

解决方案


如果你:

  • 将声明移到afor循环之外。
  • 将这两个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


推荐阅读