你如何制作沙漏图案
How do do you make an Hourglass pattern?
我正在尝试制作沙漏,但我无法正确获取沙漏的代码。我做错了什么?这是原始代码的较短版本。
#include <iostream>
using std::cin; using std::cout; using std::endl;
int main()
{
int number;
cin >> number;
//Hourglass
for (i = number; i > 0; i--)
{
cout << endl;
for (int j = number; i < j; j--)
{
cout << " ";
}
for (int j = 0; i > j; j++)
{
cout << "*";
}
for (int j = 0; i > j; j++)
{
cout << "*";
}
}
for (int i = 0; i < number; i++)
{
for (int j = 0; j < (number - (i + 1)); j++)
{
cout << " ";
}
for (int j = 0; j < (2 * i + 1); j++)
{
cout << "*";
}
for (int j = 0; j < (number - (i + 1)); j++)
{
cout << " ";
}
cout << endl;
}
}
问题出在您的第一个 for 循环中。你需要做的是移动
cout << endl;
到循环的底部,以便在进入第二个循环之前创建一个新行。
for (int i = number; i > 0; i--){
for (int j = number; i < j; j--)
{
cout << " ";
}
for (int j = 0; i > j; j++)
{
cout << "*";
}
for (int j = 0; i > j; j++)
{
cout << "*";
}
cout << endl;
}
for (int i = 0; i < number; i++)
{
for (int j = 0; j < (number - (i+1)); j++)
{
cout << " ";
}
for (int j = 0; j <= (2 * i) + 1; j++)
{
cout << "*";
}
cout << endl;
}
这应该给你一个这样的沙漏
**********
********
******
****
**
**
****
******
********
**********
以下代码将在屏幕上打印沙漏 ( * ) 图案。可变尺寸是要打印的沙漏的高度。使用 g++ 编译器编译代码。
#include <iostream>
int main() {
int row, col;
int size;
int diagA, diagB;
std::cout << "Enter height of the hourglass ";
std::cin >> size;
for ( row=0; row<size; row++ ) {
for ( col=0; col<size; col++ ) {
diagA = row;
diagB = size-row-1;
if ( diagA <= diagB ){
if ( col >= diagA && col <= diagB )
std::cout << "*";
else
std::cout << " ";
}
else {
if ( col >= diagB && col <= diagA )
std::cout << "*";
else
std::cout << " ";
}
}
std::cout << std::endl;
}
std::cout << std::endl;
return 0;
}
相关文章:
- 如何在c++17中制作一个模板包装器/装饰器
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何制作一个将函数作为参数的类方法
- 如何从unique_ptr制作static_cast
- Python中的for循环与C++有何不同
- 下面是我为检测链接列表中的循环而制作的代码
- 如何使用gdb制作一个可以漂亮地打印每个对象的C++函数
- 从对象文件(.o)在macos上制作归档文件(.a文件)
- 如何制作无限制照明系统
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 什么是(或如何制作)cpp中矢量的默认初始值设定项?
- 如何在QT中制作模态QProgressDialog?
- 如何制作指向模板函数的指针?
- 可视化 如何在 c++ 中制作特定大小的文件?
- 我可以制作指向智能指针的智能指针吗?
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 如何使用用户输入变量制作二维数组?
- 在C++中释放内存期间,迭代器与指针有何不同
- 你如何制作沙漏图案