我设法打印出我想要的星星图案的输出,但现在我想要一个可配置的星星“*”数量并自动计算相应的行数。
我尝试了几种方法,但输出似乎已关闭。如果有更好的方式来显示输出,请指导我。
int i, j, k,l;
k = 1;
l = 11;
for (i = 0; i < 6; i++)
{
for (j = 0; j < k ; j++)
{
cout << "* ";
}
cout << "- ";
k += 2;
for (j = 0; j < l; j++)
{
cout << "* ";
}
l -= 2;
cout << endl;
}
* - * * * * * * * * * * *
* * * - * * * * * * * * *
* * * * * - * * * * * * *
* * * * * * * - * * * * *
* * * * * * * * * - * * *
* * * * * * * * * * * - *
最佳答案
如果给出了行数,那么可以很容易地计算出结果的列数。查看您的模式,然后您会发现必要的列数是行数乘以 2 + 1。
这里有一个可能的解决方案:
#include <iostream>
int main()
{
std::cout << "Enter the number of rows for the pattern: ";
unsigned int numberOfRows{ 0 };
std::cin >> numberOfRows;
// Number of columns is always number of rows * 2 + 1
unsigned int numberOfColumns{ numberOfRows * 2 + 1 };
unsigned int positionOfDash{ 1 };
// Print the pattern
for (unsigned int row = 0; row < numberOfRows; ++row) {
for (unsigned int col = 0; col < numberOfColumns; ++col) {
// Output dash in desired column or else star
std::cout << (col == positionOfDash ? '-' : '*') << ' ';
}
positionOfDash += 2;
std::cout << '\n';
}
return 0;
}
请注意:当然还有大量其他可能的解决方案。 . .
关于c++ - 修改为具有可配置数量的星星 "*",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56919787/