注册 登录
编程论坛 C++教室

第一次发帖请教

lanblue 发布于 2008-10-27 15:35, 604 次点击
小弟刚学c++,做练习碰到下面问题,麻烦大家帮我看看,最后输出没结果,大家帮我看看,感激不尽!!
编写一个打印正方形的程序,例如,读取一个数5,谈后输出如下
× × × × ×
×          ×
×          ×
×          ×
× × × × ×
下面是我的程序:
# include < iostream.h >

int main ()
{
    int m, n, i ;
    
    cout << "lenth is :" ;
    cin >> m ;

    if ( m==1 )
        cout << "* " << endl ;
    else
    {
        for ( n=1; n<=m; n++ )
        {    if ( n==1 && n==m )
            {
                for (n=1; n<=m; n++)
                    cout << "* " ;
                cout << '\n' ;
            }

            else
            {
                for( i=1; i<=m; i++)
                {
                    if ( n==1 && n==m )
                        cout << "* " ;
                    else cout << "  " ;
                    
                    cout << '\n' ;
                }

            }
        }
    }
}
3 回复
#2
cool_vc2008-10-27 16:20
if ( n==1 && n==m )
应该是:if ( n==1 || n==m )吧。
#3
荒野的雄狮2008-10-27 17:00
# include < iostream.h >

int main ()
{
    int m, n, i ;
   
    cout << "lenth is :" ;
    cin >> m ;

    if ( m==1 )
        cout << "* " << endl ;
    else
    {
        for ( n=1; n<=m; n++ )
        {    if ( n==1 || n==m )
            {
                for (i=1; i<=m; i++)
                    cout << "* " ;
                cout << '\n' ;
            }

            else
            {
                for( i=1; i<=m; i++)
                {
                    if ( i==1||i==m )
                        cout << "* " ;
                    else cout << "  " ;
                    
                  
                }
                cout << '\n' ;
            }
        }
    }
}
#4
荒野的雄狮2008-10-27 17:21
楼主的逻辑(||与&&)搞错了,
第二个if中循环把n值改变了,以至else不执行,
还有最后的‘\n’应在for外。
1