gpt4 book ai didi

c++ - 如何避免在同一行打印?

转载 作者:行者123 更新时间:2023-11-28 01:17:25 25 4
gpt4 key购买 nike

我试图从 X 和 O(边界是 X,内部是 O)创建一个正方形,并且我试图避免在同一行上打印 for 循环的最后一位代码。任何帮助将不胜感激!

#include <iostream>
using namespace std;

int main() {
int x = 0;
cout << "Please enter an integer for the dimension that will represent the "
"rows and columns: "
<< endl;
cin >> x;
cout << endl;

for (int i = 0; i <= x; i++) {
for (int j = x; j > i; j--)
cout << "X";
cout << endl;
}

for (int i = 0; i < x; i++) {
for (int j = 0; j < i; j++) {
cout << " ";
}
for (int k = x; k >= i + 1; k--) {
cout << "X";
}
cout << endl;
}
cout << endl;

for (int m = 0; m < x; m++) {
cout << "X";
}
for (int m = 0; m < x - 2; m++) {
cout << "X";
for (int n = 0; n < x - 2; n++) {
cout << "O";
}
}
for (int m = 0; m < x; m++) {
cout << "X";
}
cout << endl;

return 0;
}

最佳答案

您的意思似乎是您最后一个模式输出的以下版本。

for (int m = 0; m < x; m++){
cout << "X";
}
cout << endl;
^^^^^^^^^^^^^
for (int m = 0; m < x - 2; m++){
cout << "X";
for (int n = 0; n < x - 2; n++){
cout << "O";
}
cout << "X" << endl;
^^^^^^^^^^^^^^^^^^^^
}
for (int m = 0; m < x; m++){
cout << "X";
}
cout << endl;

您可以编写一个单独的函数,只使用一个循环来输出模式。

这是一个演示程序。

#include <iostream>
#include <iomanip>

std::ostream & square( unsigned int n,
char outer = 'X',
char inner = 'O',
std::ostream &os = std::cout )
{
if ( n )
{
for ( unsigned int i = 0; i < n; i++ )
{
os << outer;
if ( n != 1 )
{
os << std::setw( n - 1 )
<< std::setfill( i % ( n - 1 ) == 0 ? outer : inner )
<< outer;
}
os << '\n';
}
}

return os;
}

int main()
{
const unsigned int N = 10;

for ( unsigned int i = 1; i < N; i++ ) square( i ) << '\n';

return 0;
}

它的输出是

X

XX
XX

XXX
XOX
XXX

XXXX
XOOX
XOOX
XXXX

XXXXX
XOOOX
XOOOX
XOOOX
XXXXX

XXXXXX
XOOOOX
XOOOOX
XOOOOX
XOOOOX
XXXXXX

XXXXXXX
XOOOOOX
XOOOOOX
XOOOOOX
XOOOOOX
XOOOOOX
XXXXXXX

XXXXXXXX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XXXXXXXX

XXXXXXXXX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XXXXXXXXX

关于c++ - 如何避免在同一行打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58218259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com