论坛首页 Java企业应用论坛

C++基础星形打印方法

浏览 1727 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-10  
OO
#include <iostream.h>

void rectangle(int heigth, int width);

void isosceles(int heigth);

void diamond(int heigth);

int main() 
{
	int heigth;
	int width;
	char c;
	cout<<"please choose the shapes that you would like using,if you want to quit please enter Q(uit)"<<endl;
	cout<<"(R/I/D)"<<endl;
	cin>>c;
	if(c == 'R' || c == 'r') 
	{
		cin>>heigth>>width;
		rectangle(heigth, width);
	}

	if(c=='I' || c=='i') 
	{
		cin>>heigth;
		isosceles(heigth);
	}

	if(c=='D' || c=='d') 
	{
		cout<<"Please enter an odd number!"<<endl;
		cin>>heigth;
		if((heigth%2) != 0)
		{
			diamond(heigth);
		}
		else 
		{
			cout<<"This is an IllegalAgrument!"<<endl;
		}
	}
	return 0;
}

void rectangle(int heigth, int width) 
{
	int i = 0;
	int j = 0;
	char c = '*';
	for(i=0; i<heigth; i++) 
	{
		for(j=0; j<width; j++)
		{
			cout<<c;
		}
		cout<<endl;
	}
}

void isosceles(int heigth)
{
	int i;
	int j = 0;
	int k = 0;
	int row = heigth;
	int spacenum;
	int starnum;
	for(k=0; k<heigth; k++)
	{
		spacenum = row--;
		if(k==0) 
		{
			starnum = 1;
		} else 
		{
			starnum = k*2+1;
		}
		for(i=spacenum; i>0; i--) 
		{
			cout<<" ";
		}
		for(j=1; j<=starnum; j++) 
		{
			cout<<"*";
		}
		cout<<endl;
	}
}

void diamond(int heigth) 
{
	int rownum = heigth;
	int spacenum;
	int starnum;
	int i=0;
	int j=1;
	int k;
	int a = rownum/2;
	for(i=0; i<heigth; i++) 
	{
		if(i<rownum/2)
		{
			spacenum = a--;
		}
		else
		{
			spacenum = a++;
		}
		//cout<<spacenum<<"sapcenum"<<endl;
		starnum = rownum -spacenum*2;
		//cout<<starnum<<"starnum"<<endl;
		for(j=0; j<spacenum; j++) 
		{
			cout<<" ";
		}
		for(k=0; k<starnum; k++) 
		{
			cout<<"*";
		}
		cout<<endl;
	}
}
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics