预期的C ++表达式?

时间:2013-02-23 06:24:56

标签: c++

#include <iostream>
using namespace std;
void num7()
{
    int numRows;
    cin >> numRows;
    for (int x = 0; x < numRows/2; x++) {
        for (int y = 0; y <= x; y++) {
            cout << "*";
        }
        cout << "\n";
    }
    float numRowsfloat = numRows;
    double cos = numRowsfloat / 2;
    int tan = numRowsfloat / 2;
    double sin = tan;
    if (cos == sin)
        cout << "\n";
        for (int x = 0; x < numRows/2; x++) {
            for (int y = numRows/2; y >0; y--) {
                cout << "*";
            }
        }
    else
        for (int x = 0; x < numRows/2+1; x++) {
            for (int y = x; y >0; y--) {
                cout << "*";
            }
            cout << "\n";
        }

}

在else列中,它表示预期的表达式。 这是试图形成三角形。像

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

表示输入6 或

*
**
***
**
* 

表示输入5

2 个答案:

答案 0 :(得分:3)

你的问题是:

if (cos == sin)
    cout << "\n";
    for (int x = 0; x < numRows/2; x++) {
        for (int y = numRows/2; y >0; y--) {
            cout << "*";
        }
    }

此处只有coutif语句的一部分。循环不是。你需要在整个区块周围添加大括号。

答案 1 :(得分:2)

你忘记了if语句的大括号。试试这个:

if (cos == sin) {
    cout << "\n";
    for (int x = 0; x < numRows/2; x++) {
        for (int y = numRows/2; y >0; y--) {
            cout << "*";
        }
    }
} else
    for (int x = 0; x < numRows/2+1; x++) {
        for (int y = x; y >0; y--) {
            cout << "*";
        }
        cout << "\n";
    }