首页 > 其他 > 详细

打印心形

时间:2016-01-07 08:49:50      阅读:217      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <stdlib.h>

int isEven(int number);
void printLovingHeart(int number,int left);	//打印爱心
void printUpLovingHeart(int number,int left);	//打印爱心的上半部分
void printDownTri(int number, int left);	//打印边长为number的向下正三角形,左边空left列
void printLovingHeartRow(int number, int row, int left);
void printRow(int number, int row, int left);

int main(){
	int number;
	while (fflush(stdin), scanf("%d", &number) != EOF){
		if (isEven(number))
			printLovingHeart(number,0);
		else
			printf("Please input a even number.\n");
	}
	system("pause");
	return 0;
}

int isEven(int number){
	if (number % 2 == 0)
		return 1;
	else
		return 0;
}

void printDownTri(int number, int left){
	for (int i = number; i > 0; --i){	//i为当前行*数
		printRow(number, i, left);
		printf("\n");
	}
}

void printUpLovingHeart(int number,int left){
	for (int i = 2; i < number/2; ++i)	//i为当前行
		printLovingHeartRow(number, i, left);
}

void printLovingHeartRow(int number, int row, int left){
		printRow(number/2-1,row,left+1);
		printRow(number/2-1,row,number/2-row+2);
		printf("\n");
}

void printRow(int number, int row, int left){
	for (int j = 0; j < left; ++j)	//打印空列
		printf(" ");
	for (int j = 0; j < number - row; ++j)	//打印左方空白
		printf(" ");
	for (int j = 0; j < row; ++j)	//打印三角形的一行
		printf("* ");
	printf("\b");
}

void printLovingHeart(int number,int left){
	printUpLovingHeart(number,left);
	printDownTri(number,left);
}

  

打印心形

原文:http://www.cnblogs.com/mutaohengheng/p/5108049.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!