解题思想:
解决该题的主要难点在于每行的固定输出,那么如何让每行都能固定输出正好的 * 号呢?自然而然的就想到了循环,所以我在这里使用了两个for循环嵌套。
定义两个变量i和j,通过i来控制外层循环用于控制三角形的行数,通过j来控制内层循环完成每行固定星号的输出。
代码实现:
#include
using namespace std;
void main(){
int i,j;
for (i=1;i<=5;i++)
{
for (j=1;j<=i;j++)
{
cout<<"*";
}
cout<
解题思想:
变量i配合变量n由用户输入控制总行数,根据要得到的图形规律可得:当前空格符数量 = 最大行号 - 当前行号,当前符数量 = 当前行号 * 2 - 1,故设置以下说明:
i行空格符数量 = 最大行号 - i
i行符数量 = i * 2 - 1
i换行符数量:1
代码实现:
void main(){
int i,j,k,n;
cout<<"请输入你想要的行数:";
cin>>n;
for(i = 1;i <= n;i++ ){ //该控制行决定了循环时的当前行号
for(j = 1;j <= n-i;j++){ //该控制行决定了打印空格符的数量,i决定行号。
cout<<" ";
}
for(k = 1;k <= i*2-1;k++){ //该控制行决定了打印*符号的数量,i决定行号。
cout<<"*";
}
cout<
解题思想:
左边的三角形原理同2,利用for循环以及由用户输入的变量space来自主设置两个三角形之间的空格,而右边三角形则需要根据规律得出m=2*(n-1),一般是看图,根据图片规律得出,故实现倒置输出。
代码实现:
int main() {
int n,space;
cout << "请输入行数:";
cin >> n;
cout << "请输入间隔数:";
cin >> space;
cout << endl;
for (int i = 1; i <= n; ++i) {
// left
for (int k = 0; k < n - i; ++k) {
cout << " ";
}
for (int j = 0; j < 2 * i - 1; ++j) {
cout << "*";
}
// space
for (int l = 0; l < space; ++l) {
cout << " ";
}
for (int m = 0; m < 2 * (n - i) + 1; ++m) {
cout << "*";
}
cout << endl;
}
return 0;
}
解题思路:
思路和等腰三角形基本一致,无非就是在正面输出一遍后,再加一个循环嵌套倒置输出。
代码实现:
void main(){
int i,j,k,n;
cout<<"请输入你想要的行数:";
cin>>n;
for(i = 1;i <= n;i++ ){ //该控制行决定了循环时的当前行号
for(j = 1;j <= n-i;j++){ //该控制行决定了打印空格符的数量,i决定行号。
cout<<" ";
}
for(k = 1;k <= i*2-1;k++){ //该控制行决定了打印*符号的数量,i决定行号。
cout<<"*";
}
cout<= 0; i--)
{
for (j = 1; j