使用'*'输出方形C ++

时间:2014-10-10 21:29:44

标签: c++ output shapes

您好我是编程新手,我的任务是输出形状。第一个是广场:

int main(){
unsigned size;
cout <<"Size: ? ";
cin >>size;
for ( unsigned r = 0; r < size; r++ ){ // Square
    for ( unsigned c = 0; c < size ; c++ )
        if ( r == c ) 
            cout <<'*';
    cout <<endl;
}
cout <<endl;
}

当我输入&#34; 5&#34;提示后。输出结果为: 5

*

*

*

*

*

有人能解释我的代码有什么问题吗?我需要有水平和垂直输出。谢谢

3 个答案:

答案 0 :(得分:1)

当r与c相同时,您只在对角线上输出*。除了一些终点线之外,你只输出其他内容,所以你最终每行只有一颗星。

答案 1 :(得分:0)

只有时间打印*是r == c。 if语句的目的是什么? 尝试评论if语句并查看结果。

答案 2 :(得分:0)

#include <iostream> 
using namespace std;

int main(){ 
unsigned size;  
bool solid = true;  //solid or hollow shape? 
cout <<"Size: ? "; 
cin >>size; 
size = 5; 
cout << endl; 

for ( unsigned r = 0; r < size; r++ ){ // Square 
    for ( unsigned c = 0; c < size ; c++ ){ 
        if(solid){ 
            cout << " * "; 
        } 
        else{ 
            if(r == 0 || r == size-1 || c == 0 or c == size-1){ 
                cout << " * "; 
            } 
            else{ 
                cout << "   "; 
            } 
        } 
    } 
    cout <<endl; 
} 
cout <<endl; 
}
Output Hollow: 
 *  *  *  *  * 
 *           * 
 *           * 
 *           * 
 *  *  *  *  * 

固体:

 *  *  *  *  * 
 *  *  *  *  * 
 *  *  *  *  * 
 *  *  *  *  * 
 *  *  *  *  *