如何在c ++中多次打印char

时间:2017-08-28 09:35:46

标签: c++ loops

2 *

4 **

6 ***

需要输出上面的模式 下面给出的代码我试过了

ia_document.author

5 个答案:

答案 0 :(得分:3)

#include <iostream>
#include<string>

int main () {
    for(auto i=1;i<=3;i++)
    {
        std::cout << i*2 << std::string(i,'*') << '\n';
    }
    return 0;
}

答案 1 :(得分:2)

最简单的方法可能是

#include <iostream>
#include<string>

using namespace std;

int main (){
   int a=2;
   while(a<=6){
       cout<< a << std::string((a/2),'*') <<endl;
                // ^^^^^^^^^^^^^^^^^^^^^^
       a+=2;
   }
   return 0;
}

答案 2 :(得分:0)

你可以添加第二个循环来处理星星。

cout<<a;
for (int i = 0; i < a/2; i++)
    cout<<'*';
cout<<endl;

答案 3 :(得分:0)

您的代码应该产生编译错误,如下所示:

    Rectangle {
    id: container
    width: 600; height: 200

    Rectangle {
        id: rect
        width: 500; height: 500

        MouseArea {
            anchors.fill: parent
            drag.target: rect
            drag.axis: Drag.XAxis
            drag.minimumX: 0
            drag.maximumX: container.width - rect.width

            //event slide here ?
        }
    }
}

因为prog.cc: In function 'int main()': prog.cc:10:22: error: no match for 'operator*' (operand types are 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' and 'int') cout<<a<<star*(a/2)<<endl; ~~~~^~~~~~ 是一个字符串而star是一个整数,所以你不能做你想要达到的目标。

相反,您可以在不使用a的情况下执行此操作,而是使用单个字符。然后使用循环根据需要多次打印星星(您似乎知道循环应该执行多少次)。

代码:

std::string

输出:

#include <iostream>

using namespace std;

int main (){
    char star = '*';
    int i, a = 2;
    while(a <= 6) {
        cout << a;
        i = 0;
        while(i++ < a/2)
            cout<< star;
        cout << endl;
        a+=2;
    }
    return 0;
}

答案 4 :(得分:0)

试试这个:

while(a <= 6){

 cout<<a;

 int c = 0;
 int b = a/2;

 while(c < b){

  cout<<star<<endl;
  c++;

 }
a=+2;
}

这就像我能回答的一样简单。希望你能得到这个想法。