如何使用两个函数在C ++中绘制空心菱形

时间:2015-04-11 20:21:59

标签: c++ function

所以我和我的团队已经在这个项目上工作了几天,当我们进入它时,我们可以得到顶部部分,但它没有运行,我们不确定为什么它不会。 第一个功能是绘制顶部,第二个功能是绘制底部。 顶部似乎画得很好我不知道为什么代码甚至不会运行。

#include<iostream>
using namespace std;

void drawTopPart(int userNum);
void drawBottomPart(int userNum);

int main() {
    //declarations
    int userNum;

    //get user input
    cout << "Enter an odd number from 1 to 15: ";
    cin >> userNum;

    //output
    drawTopPart(userNum);
    drawBottomPart(userNum);

    cout << endl;

    system("pause");
    return 0;
}

void drawTopPart(int userNumPar) {
    int z = 1;
    int size;

    cin >> size;

    for (int i = 0; i <= size; i++) {
        for (int j = size; j>i; j--) {
            cout << " "; 
        }
        cout << "*"; 

        if (i>0) {
            for (int k = 1; k <= z; k++) {
                cout << " ";
            } z += 2; cout << "*";
        }
        cout << endl; 
    }
}

void drawBottomPart(int userNumPar){
    int z -= 4;
    int size;

    cin >> size;

    for (int i = 0; i <= size - 1; i++) {
        for (int j = 0; j <= i; j++) {
            cout << " ";
        }
        cout << "*";

        for (int k = 1; k <= z; k++) {
            cout << " ";
        }

        z -= 2;

        if (i != size - 1) {
            cout << "*";
        }
    }

1 个答案:

答案 0 :(得分:0)

你有两个主要错误。 首先,

void drawBottomPart(int userNumPar){
int z -= 4;
int size;

int z -= 4;有语法错误。您可以更改int z = 17;

其次,你忘了这里的终结。

if (i != size - 1) {
cout << "*";
}
cout << endl;