如何用c语言实现对称图形

循环练习

如何在屏幕输入以下图案(两种基础方法)

在这里插入图片描述

功能分析

由题意知上半段和下半段对称

行数星数
11
23
35
47
59
611
713
811
99
107
115
123
131

从1~7逐渐递增 8~13逐渐递减
通过规律可以得到

令行数为i,星数为n
当递增时,满足n=i*2-1

达到最大值则与上面星数对称,满足每次减两行的趋势
在下面变量中,由j来表示变量

代码如下

函数调用法

#include<stdio.h>
#include<stdlib.h>
//创建函数
int star(int n) {
	int i;
	for (i = 1; i <n*2; i++) {
		printf("*");
	}
	printf("\n\n");
	return 0;
}

int main()
{
	int i;
	//创建变量j,在第八行开始递减时发挥作用
	int j = 2;
	for (i = 1; i < 14; i++) {
	//前7行呈递增函数
		if (i < 8) {
			star(i);
		}
		//后呈现递减
		else {
			star(i - j);
			j = j + 2;
		}
	}
	
	system("pause");
	return 0;
	}

嵌套循环法

#include <stdio.h>
#include <stdlib.h>


int main()
{
	for (int i = 0; i < 7; i++)
	{
		for (int j = 0; j< 2*i+1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	
	for (int i = 0; i <= 6; i++)
	{
		for (int j = 0; j < 11-2*i; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	system("pause");
	return 0;

}
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值