2015-05-27 2 views
0

У меня возникли проблемы с тем, чтобы моя программа находила максимальные и минимальные значения для набора студентов GPA. Я могу сделать это легко, не используя функцию, но когда я включаю функцию, моя программа все еще работает нормально, но она не вычисляет максимальный и минимальный GPA. Я тоже отлаживал его, и, глядя на вещи, программа просто бежит прямо над ним, не глядя на нее. Ваша помощь будет принята с благодарностью. Это то, что в настоящее время выглядит мой код, как:Использование функции и массива для получения максимального и минимального значения

#include <iostream> 
using namespace std; 

float array(int arr[], int size) 
{ 
    float max = 0; 
    float min = 4; 
    int i; 

    for (i = 0; i <= 2; i++) 
    { 
     if (arr[i] > max) 
      max = arr[i]; 

     if (arr[i] < min) 
      min = arr[i]; 
    } 
    cout << "Maximum GPA: " << max; 
    cout << "Minimum GPA: " << min; 

} 
int main(int argc, char** argv) 
{ 
    int ID[3]; 
    float GPA[3]; 
    int i; 

    for (i = 0; i <= 2; i++) 
    { 
     cout << "Please enter student ID and GPA: " << endl; 
     cin >> ID[i] >> GPA[i]; 
     array[GPA, i]; 
    } 
    for (i = 0; i <= 2; i++) 
    { 
     cout << endl << "Student ID: " << ID[i] << endl << "Student GPA: " << GPA[i] << endl; 
    } 
    return 0; 
} 
+0

_ «по взглядам вещей программа просто бежит прямо над ней, не глядя на нее». Я не понимаю, почему студенты продолжают прыгать к такому выводу. –

+0

@LightnessRacesinOrbit Мне интересно, как его программа «работает нормально» – dwcanillas

+0

@dwcanillas: :) –

ответ

2

Вы вызываете вашу функцию неправильно:

array[GPA, i]; 

должен быть

array(GPA, i); 

Ваш код не должен был даже составлен, так как я не вижу переменную array.

В коде также есть несколько других ошибок. array, вероятно, плохое имя для вашей функции. Значимые имена функций - хорошая практика, и существование std::array может вызвать проблемы. size в вашем array функция не использовался, а как @jaggedSpire указал. Ваша array функция должна быть, вероятно,

void array(float arr[], int size) 

assumming вы начинаете использовать size.

+0

Кроме того, вы не возвращаете значение из своей функции массива, которая должна возвращать float, и вы принимаете аргумент массива int введите в свою функцию массива, когда массив, который вы поставляете в своем вызове функции, имеет тип float. ('float array (int arr [], int size)' -> 'void array (float arr [], int size)') – jaggedSpire

+0

Хорошо! Большое спасибо ребятам. –

0

Привет, я новичок в программировании, но я думаю, что ваш массив вызовов функций [GPA, i] должен быть массивом (GPA, i); и переместите его дальше вниз до уровня выше возврата. его первая попытка ответить на вопрос, надеюсь, что это поможет.

Смежные вопросы