空心菱形(一个循环)

本文总字数:791,阅读预计需要:2分钟

代码

#include<stdio.h>

int n;

void init() {
	printf("请输入n:");
	scanf("%d", &n);
}

void output() {
	int spot = 0;
	int linecount = 0;
	int mid = n / 2;
	int pos_1 = mid;
	int pos_2 = 2 * mid - pos_1;
	while (linecount < n) {
		if (spot == pos_1 || spot == pos_2) {
			if (pos_1 == pos_2) {
				linecount++;
				printf("*");
				spot = 0;
				pos_1 = linecount > mid ? pos_1 + 1 : pos_1 - 1;
				pos_2 = 2 * mid - pos_1;
				printf("\n");
			}
			else {
				if (spot == pos_1) {
					printf("*");
					spot++;
				}
				else {
					linecount++;
					printf("*");
					spot = 0;
					pos_1 = linecount > mid ? pos_1 + 1 : pos_1 - 1;
					pos_2 = 2 * mid - pos_1;
					printf("\n");
				}
			}
		}
		else {
			printf(" ");
			spot++;
		}
	}
}

int main() {
	init();
	output();
	return 0;
}

posted @   彭乐祥  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示