主题:问
eaglexhh
[专家分:30] 发布于 2008-02-08 22:35:00
我想编程序实现输出下面这个图形
a a a a
a a a
a a
a
程序如下;
#include<iostream.h>
void main()
{
int i,j,k=0;
for(i=4;i>0;i--)
{
while(k>0)
{
cout<<" ";
k--;
}
for(j=i-k;j>0;j--)
{
cout<<"* ";
}
k++;
cout<<endl;
}
}
可是为什么输出结果不对呢?
回复列表 (共3个回复)
沙发
eaglexhh [专家分:30] 发布于 2008-02-08 22:41:00
图中的a我就用空格代替了
板凳
liuhenwang [专家分:80] 发布于 2008-02-09 12:25:00
我想编程序实现输出下面这个图形
a a a a
a a a
a a
a
程序如下;
#include<iostream.h>
void main()
{
int i,j,k=0;
for(i=4;i>0;i--)
{
while(k>0)
{
cout<<" ";
k--;
}
for(j=i-k;j>0;j--)
{
cout<<"* ";
}
k++;
cout<<endl;
}
}
可是为什么输出结果不对呢?
-----------------------------------------------------------------------------
如果空格代表a的话,那么你的k的初始化就有问题,第一行要输出4个a的话,那么k就应该初始化为4,怎么会是0呢?
还有,为什么要多此一举再用一个while循环呢?用两个for循环足以实现你要的程序了,如下
for(int i=4;i>0;i--)
{
for(j=i;j>0;j--)
cout<<"a ";
cout<<endl;
}
3 楼
eaglexhh [专家分:30] 发布于 2008-02-09 21:27:00
看来是我搞错了。应该是图中的a我在程序中用*代替了
我来回复