回 帖 发 新 帖 刷新版面

主题:C语言怎么样用for嵌套打出菱形???  求教!


回复列表 (共6个回复)

沙发

两重循环:
外层有多少行就循环多少次;
内层有两个并列的循环,一个输出空格,另一个输出符号。

如果需要的是空心菱形,则内层循环需要三个并列循环。

板凳


代码才是硬道理啊!

3 楼

实心菱形:
#include <iostream>
using namespace std;
int abs(int i){
    if(i<0)i=-i;
    return i;
}
int main()
{
    const int N=11;
    for(int i=-N/2;i<=N/2;i++){
        for(int j=0;j<abs(i);j++)
            cout<<" ";
        for(int k=0;k<N-2*abs(i);k++)
            cout<<"*";
        cout<<endl;
    }
    return 0;
}
空心菱形:
#include <iostream>
using namespace std;
int main()
{
    const int N=11;
    char a[N][N]={' '};
    for(int i=0;i<N/2;i++){
        a[i][N/2-i]='*';
        a[i][N/2+i]='*';
    }
    for(int i=N/2;i<N;i++){
        a[i][i-N/2]='*';
        a[i][N-i+N/2-1]='*';
    }
    for(int i=0;i<N;i++){
        for(int j=0;j<N;j++)
            cout<<a[i][j];
        cout<<endl;
    }
    return 0;
}
//N必须是奇数

4 楼


汗,我还没学c++啊,不过还是谢谢你,看懂算法就行了!

5 楼

呵呵,这么简单的问题,必须自己写才行的,除非你打算考完试就把这东西扔了:)

6 楼

受教了~

我来回复

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