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

循环练习

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

在这里插入图片描述

功能分析

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

行数 星数
1 1
2 3
3 5
4 7
5 9
6 11
7 13
8 11
9 9
10 7
11 5
12 3
13 1

从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;

}
发布了29 篇原创文章 · 获赞 10 · 访问量 7505

猜你喜欢

转载自blog.csdn.net/qmqm33/article/details/93351390
今日推荐