当前位置: 代码迷 >> C语言 >> [求助]看这代码能合并FOR循环吗?
  详细解决方案

[求助]看这代码能合并FOR循环吗?

热度:113   发布时间:2006-07-14 23:56:43.0
[求助]看这代码能合并FOR循环吗?

#include<iostream.h>
class person
{
private:
int a,i,j,k;
public:
void fn();
void sn();
person();

};
person::person()
{
cout<<"*****************************打印一个松树***************************"<<endl;
}
void person::sn()
{
cout<<"请输入数值:";
while(cin>>a)
{
if(a>4&&a<8)
fn();
else
cout<<"输入错误"<<endl;
cout<<"请输入:";
}
}
void person::fn()
{
for(i=0;i<a;i++)
{
for(j=10;j>=i;j--)
{
cout<<" ";
}
for(k=1;k<=2*i+1;k++)
{
if(k%2!=0)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
for(i=0;i<a+2;i++)
{
for(j=9;j>=i;j--)
{
cout<<" ";
}
for(k=1;k<=2*i+3;k++)
{
if(k%2!=0)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
for(i=0;i<a+3;i++)
{
for(j=8;j>=i;j--)
{
cout<<" ";
}
for(k=1;k<=2*i+5;k++)
{
if(k%2!=0)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
for(i=0;i<a+3;i++)
{
for(j=10;j>=0;j--)
{
cout<<" ";
}
for(k=1;k<2;k++)
{
cout<<"*";
}
cout<<endl;
}

}
void main()
{
int a ;
person st;
st.sn();
}

搜索更多相关的解决方案: FOR  person  void  cout  

----------------解决方案--------------------------------------------------------
go C++

----------------解决方案--------------------------------------------------------

我刚学C++在练手,本人还处于C初级阶段~只需要看FOR循环算法~


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-14 23:15:12
穆扬

等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-14 23:18:26
lianxin19

等 级:新手上路
帖 子:66
专家分:0
注 册:2006-7-8
  得分:0 

我们学的东西多但不深专~具体靠自己


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-15 23:18:49
工藤♀新一

等 级:新手上路
帖 子:140
专家分:0
注 册:2006-5-4
  得分:0 

程序可以正常运行,至于能不能合并我想LZ自己最清楚吧,毕竟画松数的算法是LZ自己想的,
多想想应该十程序更精简些


----------------解决方案--------------------------------------------------------
可以,C++提供填充字符的函数,你还是去看看书吧
----------------解决方案--------------------------------------------------------
C++里提供一种填充字符的函数.
可以轻松的做到这一点.你可以看看一下下面的程序,是打印
*
***
*****
*******
*****
***
*


#include<iostream.h>
#include<iomanip.h>
#define N 4
int main()
{
int i;
for(i=1;i<=N;i++)
cout<<setfill( )<<setw(N-i)<<setfill(*)<<setw(2*i-1)<<endl;
for(i=N+1;i<=2*N-1;i++)
cout<<setfill( )<<setw(i-N)<<setfill(*)<<setw(2*(i-N)-1)<<endl;
return(0);
}
//然后参照一下,就可以合并你的for()了
----------------解决方案--------------------------------------------------------
  相关解决方案