圣诞礼物圣诞树,送给大家!_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > 圣诞礼物圣诞树,送给大家!

圣诞礼物圣诞树,送给大家!

 2010/12/26 9:48:30  ggggnuirgw  http://ffly.javaeye.com  我要评论(0)
  • 摘要:#include<stdio.h>#include<stdlib.h>#include<string.h>#defineCOL3//每层3行#defineROW4//圣诞树层数(每层3行)char*list[]={"*\0","***\0","*****\0","*******\0","*********\0","***********\0"};main(){inti,j,k,len,listlen;k=0;listlen=sizeof(list
  • 标签:大家

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

#define COL 3 //每层3行
#define ROW 4 //圣诞树层数(每层3行)

char *list[] = {
	"*\0",
	"***\0",
	"*****\0",
	"*******\0",
	"*********\0",
	"***********\0"
};


main()
{
	int i,j,k,len,listlen;
	k=0;
	listlen = sizeof(list)/sizeof(list[0]);//取list数组长度
	len = strlen(list[listlen -1])/2 + 1;//最后一行的长度除以2,用来生成空格用的,既最大空格数
	for(i=0;i<ROW*COL;i++)//循环总行数(圣诞树层数乘以每层行数)
	{
		
		/*strlen(list[k])/2 + 1 得到本行你所站用空格的各数*/
		/*len-(strlen(list[k])/2 + 1) 总空格"减"本行站用的空格*/
		for(j=0;j<len-(strlen(list[k])/2 + 1);j++)//循环打印空格
		{
			putchar(' ');
		}
		printf("%s\t\t%d\n",list[k],k);//打印 "*"
		k++;
		if(i%3==2)//说明打印好一层圣诞树
			k-=2;//移到下层圣诞树需要打印的下标
	}
	
	for(i=0;i<4;i++)
	{
		for(j=0;j<len-2;j++)//循环打印空格
		{
			putchar(' ');
		}
		printf("|||\n");
	}
}

?由于上次eye无故封我发表文章,所以一直都没有登eye了,今天来特地送个圣诞节礼物给大家。:)

新手可以试着做做,这是我以前看到的一个面试题,在很短时间内做出来还是有点小难度的哈哈。

?

效果如下:

?? ? ? ? ? ? ? ? ? ? ?*

?? ? ? ? ? ? ? ? ? ?***

?? ? ? ? ? ? ? ? ?*****

?? ? ? ? ? ? ? ? ? ?***

?? ? ? ? ? ? ? ? ?*****

?? ? ? ? ? ? ? ?*******

?? ? ? ? ? ? ? ? ?*****

?? ? ? ? ? ? ? ?*******

?? ? ? ? ? ? ?*********

?? ? ? ? ? ? ? ? ? ? ?|

?? ? ? ? ? ? ? ? ? ? ?|

?? ? ? ? ? ? ? ? ? ? ?|

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

发表评论
用户名: 匿名