创建各类三角形图案
直角三角形(左下角)
#include <iostream>
using namespace std;
int main()
{
int rows;
cout << "输入行数: ";
cin >> rows;
for(int i = 1; i <= rows; ++i)
{
for(int j = 1; j <= i; ++j)
{
cout << "* ";
}
cout << "\n";
}
return 0;
}
运行效果
代码描述:外层循环控制行数,从1行到rows行,内层循环打印一个星号和一个空格,用于格式化输出(空格在计算机中本身也代表一个符号,只是输出不可见),我们能看到的只有星号,就形成了视觉上的直角三角形图案。
直角三角形(右下角)
#include <iostream>
using namespace std;
int main()
{
int rows;
cout << "输入行数: ";
cin >> rows;
for(int i = 1; i <= rows; ++i)
{
// 输出前面的空格
for(int j = 1; j <= rows - i; ++j)
{
cout << " ";
}
// 输出星号
for(int j = 1; j <= i; ++j)
{
cout << "*";
}
cout << "\n";
}
return 0;
}
运行效果
代码描述:双for并列循环,一个用来打印空格,一个用来打印星号,用于格式化输出(空格在计算机中本身也代表一个符号,只是输出不可见),我们能看到的只有星号,就形成了视觉上的直角三角形图案。
直角三角形(左上角)
#include <iostream>
using namespace std;
int main()
{
int rows;
cout << "输入行数: ";
cin >> rows;
for(int i = rows; i >= 1; --i)
{
for(int j = 1; j <= i; ++j)
{
cout << "* ";
}
cout << endl;
}
return 0;
}
运行效果
代码描述:外层循环控制行数,从1行到rows行(递减),内层循环打印一个星号和一个空格(递增),用于格式化输出(空格在计算机中本身也代表一个符号,只是输出不可见),我们能看到的只有星号,就形成了视觉上的直角三角形图案。
直角三角形(右上角)
#include <iostream>
using namespace std;
int main()
{
int rows;
cout << "输入行数: ";
cin >> rows;
for(int i = 0; i < rows; ++i)
{
// 输出前面的空格
for(int j = 0; j < i; ++j)
{
cout << " ";
}
// 输出星号
for(int j = 0; j < rows - i; ++j)
{
cout << "*";
}
cout << "\n";
}
return 0;
}
运行效果
代码描述:双for并列循环,一个用来打印空格,一个用来打印星号,用于格式化输出(空格在计算机中本身也代表一个符号,只是输出不可见),我们能看到的只有星号,就形成了视觉上的直角三角形图案。
锐角三角形(正)
#include <iostream>
using namespace std;
int main()
{
int space, rows;
cout <<"输入行数: ";
cin >> rows;
for(int i = 1, k = 0; i <= rows; ++i, k = 0)
{
for(space = 1; space <= rows-i; ++space)
{
cout <<" ";
}
while(k != 2*i-1)
{
cout << "* ";
++k;
}
cout << endl;
}
return 0;
}
运行效果
代码描述:双for嵌套循环,for循环用来控制行数和打印空格,内部while循环用来打印星号,用于格式化输出(空格在计算机中本身也代表一个符号,只是输出不可见),我们能看到的只有星号,就形成了视觉上的直角三角形图案。
tips:如上输出像钝角吗?
锐角三角形(倒)
#include <iostream>
using namespace std;
int main()
{
int rows;
cout << "输入行数: ";
cin >> rows;
for(int i = 1; i <= rows; ++i)
{
// 输出前面的空格
for(int j = 1; j <= i - 1; ++j)
{
cout << " ";
}
// 输出星号
for(int j = i; j <= rows; ++j)
{
cout << " *";
}
cout << "\n";
}
return 0;
}
运行效果
代码描述:for嵌套双for并列循环,外层for循环用来控制行数,内部双for并列循环第一个用来打印空格,用于格式化输出(空格在计算机中本身也代表一个符号,只是输出不可见),第二个用来打印星号,我们能看到的只有星号,就形成了视觉上的直角三角形图案。
钝角三角形?
钝角三角形该怎么设计程序呢?视觉看起来要真的像钝角三角形?且要保证行数准确的情况下设计钝角三角形程序?
triangle.cpp
#include <iostream>
#include <iomanip> // For std::setw
int main() {
const int height = 10; // 三角形的高度
const char ch = '*'; // 三角形的字符
// 打印钝角三角形的上半部分
for (int i = 1; i <= height; ++i) {
std::cout << std::setw(height - i + 1); // 调整每行的起始位置
for (int j = 1; j <= i; ++j) {
std::cout << ch;
}
std::cout << std::endl;
}
// 打印钝角三角形的下半部分
for (int i = height - 1; i >= 1; --i) {
std::cout << std::setw(height - i + 1); // 调整每行的起始位置
for (int j = 1; j <= i; ++j) {
std::cout << ch;
}
std::cout << std::endl;
}
return 0;
}
运行效果
代码描述:外层for并列循环,第一个for嵌套循环打印钝角三角形的上半部分,第二个for嵌套循环打印钝角三角形的下半部分,使用iomanip的功能函数setw函数调整每一行的起始位置。这种看起来似乎更像钝角了。