【问题标题】:function was not declared in this scope? [duplicate]函数没有在这个范围内声明? [复制]
【发布时间】:2018-07-12 16:46:38
【问题描述】:

我正在尝试编写一个根据输入显示星号和空格的程序,但我遇到了编译器问题:

chart.cpp:24:41: error: ‘find_largest’ was not declared in this scope
  int largest = find_largest(values, size);

这是我的代码:

/*
 * Project 1
 * Author: Erik Ingvoldsen
 * Date: 2/1/2018
 */

#include <iostream>
using namespace std;

int size = 0; //initalizing "size" at 0.
const int MAX = 100; //setting max value
int values[MAX]; //100 int limit

int main(){
    int num;
    for (int i = 0; i < MAX; i++) {
        cin >> num; //allow the user to put in a number
        values[i] = num; //assigning value to the array
        if (num <= 0) {
            break; //stop if "0" or lower is entered
        }
        size++; //increase the size of array, assuming the for loop hasn't been broken
    }
    int largest = find_largest(values, size); //setting the amount of rows
    for (int i = 0; i < size; i++) {
        if (values[i] = largest) {
            cout << "*"; //if the value of the area reachest the highest row, give a *
        } else {
            cout << "\n"; //otherwise just give a blank space
        }
        largest--; //by shrinking "largest", we move down the next row
        cout << endl;
    }
    return 0;
}

int find_largest(int values[], int size) {
    int largest = 0;
    for (int i = 0; i < size; i++) {
        if (values[i] > largest) { 
            largest = values[i]; //if the value of the array is bigger than the current largest it is replace
        }
    }
    return largest; //once the for loop is completed, it returns the largest number found
}

我真的分不清这个和函数之间的区别......而且我很确定我不应该将它声明为“int maximum = find_largest(values[], size);”

【问题讨论】:

  • if (values[i] = largest) 你的意思可能是==
  • int find_largest(int values[], int size) 是在main 中使用后定义的,您至少需要在main 之前进行声明。

标签: c++


【解决方案1】:

您应该在使用它们之前声明所有函数。简单的方法是使用原型。

// prototype
int find_largest(int values[], int size);

int main(){
    ...
}

int find_largest(int values[], int size) {
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    相关资源
    最近更新 更多