回 帖 发 新 帖 刷新版面

主题:问

我想编程序实现输出下面这个图形
 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个回复)

沙发

图中的a我就用空格代替了

板凳

我想编程序实现输出下面这个图形
 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 楼

看来是我搞错了。应该是图中的a我在程序中用*代替了

我来回复

您尚未登录,请登录后再回复。点此登录或注册