学校の課題で分からないところがあるので、質問している次第です。
n の整数値に値を入力すると、その数に応じた、ひし形を描画するプログラムコードです。
n が 9 の時の実行出力は、上部分と下部分の左側が正しく表示されるのですが、右側がおかしくなります。
また、n が 1から7の時も表示がごちゃごちゃになります。
どなたか教えていただけないでしょうか?
#include <iostream>
using namespace std;
int main(void)
{
int mid, c = 0, n;
cout << "整数値を入力 ----> ";
cin >> n;
mid = n / 2 + 1;
for (int y = 1; y <= 9; y++)
{
for (int x = 1; x <= 9; x++)
{
printf(" ");
// 左上
if ((y == c + 1) && (x == mid - c))
{
printf("@");
}
// 右上
else if ((y == c + 1) && (x == mid + c))
{
printf("@");
}
// 左下
else if ((y == c + 1) && (x == c - 3))
{
printf("@");
}
// 右下
else if ((y == mid + 1) && (x == c + 3))
{
printf("@");
}
}
cout << "\n";
c = c + 1;
}
}
実行結果
整数値を入力 ----> 9
@
@ @
@ @
@ @
@ @
@ @
@
@
@
続行するには何かキーを押してください . . .
整数値を入力 ----> 5
@
@ @
@ @
@
@ @
@ @
@ @
@
@
続行するには何かキーを押してください . . .