c++,for循环打印菱形图

本文详细介绍了一段使用C++编程语言绘制菱形图案的代码实现过程。通过内外层循环控制空格和星号的输出,实现了菱形的上半部分和下半部分的绘制。该程序首先提示用户输入菱形的边长,然后根据输入值动态生成对应大小的菱形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
using namespace std;
int main()
{
	int n = 0;
	cout << "输入菱形的边长:";
	cin >> n;
	cout << "图形如下:" << endl;

	//上半层
	for (int i = 0; i < n; i++)               // 外层控制循环次数,输入的数字就是上半层循环的次数

	{                                         // (n-1)比外层循环少一次,减去i就是每行少一个空格
		for (int j = 0; j < (n - 1) - i; j++) // 内层循环打印空格的个数 外层循环n次 内层循环n-1次
		{   							      // 循环几次几个空格 
			cout << " "; 	                  // 第n层的时候 i=n-1 空格为0  所以这层不用循环 所以循环次数可以变成n-1
			}	                          // 或者j<n-1-i
		                                                                    	
	    //星星的个数是 1 3 5 7 9 12...2*n+1 的等差数列形式递增的
		for (int j = 0; j < (2 * i + 1); j++) // 内层循环打印行星的个数   i=0时  j<=0 循环1次 打印一颗星
		                                      // 循环几次几个星星         i=1时  j<=2 循环3次 打印三颗星  以此类推
		{                                     // 也可以写成 j<2*i+1  一样
			cout << "*";
		}
		cout << endl;
	}

	//下半层
	for (int i = 0; i < n - 1; i++)                    
	{
		for (int j = 0; j < i + 1; j++)       // 下半层从上往下 空格个数越来越多 循环次数也就跟着增多
		{
			cout << " ";
		}
		
	for (int j = 0; j < 2 * ( n - 1 ) - (1 + 2 * i); j++)//下半层从上往下 星星个数依次递减 循环次数也就跟着减少
		{ 
			cout << "*";                     // 星星的个数是 2*n-1  2*n-3 .....2*n-(1+2*i) 等差数列递减 
			                                 // 因为是下半层从n-1开始的 所以这里的N=n-1
		}
			 	cout << endl;            // 和上面一样、 循环几次几个星星  
		 
	
	}
	return 0;
}

运行结果:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值