我们如何访问以下输出? (数字-星号)

时间:2019-05-07 01:13:42

标签: c++ arrays for-loop design-patterns sign

我正在用C ++编写代码,该代码必须具有以下输出:

1 ******

12 *****

123 ****

1234 ***

12345 **

123456 *

1234567

我已经完成了显示整数的操作,但问题是将星号与它们耦合起来。

代码如下:

#include<iostream>
using namespace std;
int main () {
    int i,j;
    for(int i=1;i<8;i++) {
        for(int j=1;j<=i;j++){

    cout<<j; 
    } cout<<endl;}

return 0;
}

谢谢。 This is the output of the process I have done until.

1 个答案:

答案 0 :(得分:2)

这是您问题的答案,但我确实认为,在研究答案之前,您应该首先考虑解决方案。

以下是您回答的一些提示:

  1. 尝试考虑如何打印1,12,123以及它如何反向工作(123,12,1)
  2. 用纯字符或字符串“ ”或“
  3. 替换数字
  4. 考虑应该放置代码的位置
  5. 测试
  6. 如果结果不是您想要的,但是足够接近,请尝试修改for([initialization];[end condition];[incremental])的代码部分

这也是您未来编程之路的一些建议:

  1. Don't use using namespace std;,目前可能比较方便,但是在编码中使用它是一种不好的做法。
  2. 使用从0开始的索引。这种做法可以帮助您轻松遍历数组,列表,向量和其他任何类似于数组的数据结构。
  3. 您已经在for循环中初始化了整数,因此实际上您可以省略代码节int i,j;

* ps:我试图使其成为破坏者,但失败了,如果有人可以使代码成为破坏者,请这样做。谢谢。

#include <iostream>
int main () {
    for(int i=0;i<7;i++) {
        for(int j=0;j<=i;j++)
            std::cout<<j+1; 
        for(int k=0;k<(7-(i+1));k++)
            std::cout<<"*";
        std::cout<<std::endl;
     }

return 0;
}