Void SetGrade (int total): [ошибка: недопустимое использование пустого выражения] - PullRequest
0 голосов
/ 24 марта 2020

У меня есть такой код:

#include <iostream>
using namespace std;
int main(){
    int total = 95;
    cout << "Grade is : " << SetGrade(total) << endl;
}
void SetGrade(int total){ 
     char Grade;
     if (total >= 90){
         Grade = 'A';
     }else if (total > 80 && total <= 89){
         Grade = 'B';
     }else if (total > 70 && total <= 79){
         Grade = 'C';
     }else if (total > 60 && total <= 69){
         Grade = 'D';
     }else{
         Grade = 'E';
     }
}

и вывод: ошибка: недопустимое использование выражения void.

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Братан, это решить с помощью:

#include <iostream>
using namespace std;
int main(){
    int total = 95;
    cout << "Grade is : "; SetGrade(total);
    return 0;
}
void SetGrade(int total){ 
     char Grade;
     if (total >= 90){
         Grade = 'A';
     }else if (total > 80 && total <= 89){
         Grade = 'B';
     }else if (total > 70 && total <= 79){
         Grade = 'C';
     }else if (total > 60 && total <= 69){
         Grade = 'D';
     }else{
         Grade = 'E';
     }
     cout << Grade;
}

Спасибо за ответ на переполнение стека!

0 голосов
/ 24 марта 2020

Функция, которую вы определили, имеет тип возврата void. Чтобы передать его в std :: cout, вам нужно что-то передать. Например, вот так:

#include <iostream>
#include <string>

int main(){
    int total = 95;
    std::cout << "Grade is : " << total2Grade(total) << std::endl;
}
std::string total2Grade(int total){ 
     std::string Grade;
     if (total >= 90){
         Grade = 'A';
     }else if (total > 80 && total <= 89){
         Grade = 'B';
     }else if (total > 70 && total <= 79){
         Grade = 'C';
     }else if (total > 60 && total <= 69){
         Grade = 'D';
     }else{
         Grade = 'E';
     }
     return Grade;
}
...