Моя программа должна использовать локальные переменные вместо глобальных.Однако, когда я пытаюсь сделать это, я не могу найти правильные параметры для передачи данных назад и вперед от main и функций.Я продолжаю получать сообщение о том, что «тип аргумента int несовместим с параметром типа float».Пожалуйста, помогите мне понять, что делать здесь.Спасибо за ваше время, я ценю это.
Я пытался найти код ошибки, но нашел только ответы / вопросы, касающиеся проблем с указателями, которые я еще не изучил.Я работал над этим часами, чтобы переменные работали внутри «int main», но безрезультатно.
//This program asks user how many grades there are,
//inputs grades, and displays median of said grades.
//"int main" is at the bottom of the program, preceded by
//variables, function headers, and a single array.
#include <iostream>
using namespace std;
void grdTaker(float [], int);
void sortArray(float[], int);
void median(float[], int);
//Main
int main()
{
//Variables
//int grdsCounted; //Number of grades from user.
const int arraySize = 20;
int grdsCounted; //Number of grades from user.
float grades[arraySize]; //Max grades that can be entered.
grdTaker(grdsCounted, grades[]);
sortArray(grades, grdsCounted);
median(grades, grdsCounted);
system("pause");
}
void grdTaker(float array[], int size) //Function gathers grades.
{
//const int arraySize = 20;
//int grdsCounted; //Number of grades from user.
//float grades[arraySize]; //Max grades that can be entered.
cout << "You may input up to 20 grades. \n";
cout << "First enter the number of grades you have: ";
cin >> grdsCounted;
while (grdsCounted > arraySize)
{
cout << "That is more than 20 grades, try again: \n";
cin >> grdsCounted;
}
cout << "Enter each grade: \n";
//requests how many grades there are and stores them in array
for (int grdCount = 0; grdCount < grdsCounted; grdCount++)
{
cin >> grades[grdCount];
}
};
void sortArray(float array[], int size) //Function sorts array values.
{
bool swap;
float temp;
do
{
swap = false;
for (int count = 0; count < (size - 1); count++)
{
if (array[count] > array[count + 1])
{
temp = array[count];
array[count] = array[count + 1];
array[count + 1] = temp;
swap = true;
}
}
} while (swap);
}
void median(float array[], int size) //Outputs the median of entered grades.
{
int med = size / 2;
int odd = med - 1;
cout << "The median grade is: ";
if (size % 2 == 1)
{
cout << array[med] << endl;
}
else
{
cout << (array[med] + array[odd]) / 2 << endl;
}
}