Функция inputGrade - это функция, которая принимает только целые числа.
Q1.Мне нужно вернуть максимальное значение через функцию topGrade, но я не знаю, почему я вернул его в качестве указателя. Есть ли что-нибудь лучше, чем просто вернуть его как int?
Q2. На фотографии выше, когда объявлен вектор, он не вписал размер. Если компилировать без указания размера, происходит ошибка. Могу ли я думать, что это ошибка?
Q3. Ниже приведен исходный код, который я написал. Есть ли какая-то часть для дополнения?
#include<iostream>
#include<vector>
using namespace std;
int inputGrade(float grade){
cin >> grade;
if ((grade - (int)grade) != 0.0 || grade < 0 || grade>100) {
cout << "invalid input!!!" << endl;
exit(EXIT_FAILURE);
}
else
return (int)grade;
}
int* topGrade(const vector<int>& grade) {
int max;
if (grade[0] >= grade[1] && grade[0] >= grade[2]) {
max = grade[0];
return &max;
}
if (grade[1] >= grade[2] && grade[1] >= grade[0]) {
max = grade[1];
return &max;
}
if (grade[2] >= grade[1] && grade[2] >= grade[0]) {
max = grade[2];
return &max;
}
}
int main() {
vector<int>grades(3);
grades[1] = 0;
grades[2] = 0;
float _grade = 0;
for (int i = 0; i < 3; i++) {
cout << "input " << i << "-th grade(0~100):";
int grade = inputGrade(_grade);
grades[i] = grade;
}
cout << "Top Grade: " << *topGrade(grades);
return 0;
}
Спасибо, что прочитали мой вопрос, и я буду ждать вашего ответа