Как я могу сделать разные функции из каждого из этих утверждений? - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть этот код, и я должен сделать две вещи.Одним из них является получение номеров из файла, который уже был сделан.Два состоит в том, чтобы превратить каждую проблему в функцию.Например, функция для получения минимального числа и функция для получения наибольшего числа.Если бы я мог получить помощь хотя бы для того, чтобы сделать каждый из них функцией, я буду очень благодарен.Также я просто хотел бы получить самый низкий.Я могу выяснить остальное, что задается в коде.

Я пробовал это, я знаю, что это не правильно, но я не уверен, какие параметры использовать.

Я знаю коднеправильно, но я изо всех сил пытаюсь понять, как.

int getLowest(int arrayNum[], smallest);

int main()
{
    string fileName;
    ifstream inputFile;
    const int ARRAY_SIZE = 12;
    int numbers[ARRAY_SIZE], smallest, largest, sum, average;

    //Prompt user to insert the file name
    cout << "Enter the name of imput file: ";
    cin >> fileName;

    //Open file
        inputFile.open(fileName);

    //If it successfully opens
    if (inputFile)
    {
        // Read the numbers and get the lowest, highest, sum and average of 
        // the numbers.
    cout << numbers << " numbers read from input file.\n"
         << "The lowest value is " << getLowest(numbers) << endl;
    }

        else
    {
        //Display error message
        cout << "Error, this file does not exist.";
    }
}

int getLowest(int arrayNum[], int smallest)
{
    int temp = arrayNum[0];

    for (int i = 0; i < smallest; i++) 
        {
        if (temp < arrayNum[i])
            temp = arrayNum[i];
    }
    return temp;
}

1 Ответ

0 голосов
/ 28 сентября 2019

Сначала, чтобы проверить, открыт ли файл, используйте if(inputFile.is_open()){}.if(inputFile){} выполнит (я верю) что-то вроде if(&inputFile != 0x00000000){}, чего, я думаю, вы не хотите.
Если у вас возникли проблемы с чтением файла, используйте

for(unsigned char i = 0; i < ARRAY_SIZE; i++){
    inputFile >> numbers[i];                    // note the `>>` operator
}

Для getLowest(), я полагаю, вы хотите что-то похожее на

#define ARRAY_SIZE 12                           // a macro
int getLowest(int* arrayNum, int& smallest){
    int temp = 0;
    for(int i = 0; i < ARRAY_SIZE; i++){        // in your code, if smallest was > 
        if(temp < arrayNum[i]){                 // array length, run-time err
            temp = arrayNum[i];
        }
    }
    smallest = temp;
    return temp;
}

У вас всего несколькокритические ошибки в вашем коде.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...