#c
#c
Вопрос:
Я сталкиваюсь с 3 ошибками в своем коде. В строке 12 говорится, что «: игнорируется слева от ‘const char’, когда в строке 29 не объявлена переменная, ‘{‘: соответствующий токен не найден. В строке 6 тип возвращаемого значения ‘main’ должен быть ‘int’ вместо ‘void’ Мой код:
/*Write a program to read 3 grades. Grades are between 0-100. Calculate the average, then print the
following message. */
#include<iostream>
using namespace std;
void main() {
int grade1{};
int grade2{};
int grade3{};
int average{};
int sum{};
const char;
cout << "Enter 3 grades (as a number between 0-100): " << endl;
cin >> grade1 >> grade2 >> grade3;
if (grade1 >= 90)
{
cout << 'A' << endl;
}
if (grade1 <= 89)
{
cout << 'B' << endl;
}
if (grade1 <= 79)
{
cout << 'C' << endl;
}
if (grade1 <= 69)
{
cout << 'D' << endl;
}
if (grade2 >= 90)
{
cout << 'A' << endl;
}
if (grade2 <= 89)
{
cout << 'B' << endl;
}
if (grade2 <= 79)
{
cout << 'C' << endl;
}
if (grade2 <= 69)
{
cout << 'D' << endl;
}
if (grade3 >= 90)
{
cout << 'A' << endl;
}
if (grade3 <= 89)
{
cout << 'B' << endl;
}
if (grade3 <= 79)
{
cout << 'C' << endl;
}
if (grade3 <= 69)
{
cout << 'D' << endl;
}
else
cout << 'F' << endl;
sum = (grade1 grade2 grade3);
average = (sum / 3);
cout << "Your average is: " << average << endl;
}
Кто-нибудь знает, что я могу сделать, чтобы исправить эти ошибки? Пожалуйста, помогите мне. Спасибо! 🙂
Комментарии:
1. 1) Предложение «возвращаемый тип ‘main’ должен быть ‘int’ вместо’void'», на мой взгляд, дает довольно четкое сообщение. 2) В строке 29 нет ничего плохого. 3) Вы удивлены, что просто написание типа, например
const char;
, является ошибкой?2. Если бы вы написали
printGrade(int score)
функцию, вам пришлось бы написать этот код (и исправить ошибку вывода) только один раз.3. В качестве примечания, вы можете использовать if-else-chains вместо if-chains (чтобы избежать печати нескольких букв)
Ответ №1:
Заменить void main()
на int main()
(именно так работает C ). Кроме того, что вы пытаетесь сделать const char
? Вы не объявляете какую-либо переменную и не используете эту строку, поэтому вы можете просто удалить ее.
В строке 29 нет ничего плохого, после исправления двух других проблем код работает просто отлично.
Некоторые дополнительные замечания:
- избегайте
using namespace std
- объявите свои переменные в первый момент, когда вы их используете. Например, напишите
int sum = grade1 grade2 grade3;
- Постарайтесь избежать дублирования кода, написав функцию, которая выполняет оценку.
- Используйте
else if
вместоif
, иначе число, которое находится между 70 и 79 , также меньше 89 и приводит к нежелательному выводу.
Комментарии:
1. Я запустил его снова, он работает, но когда я попробовал ввести три 100, внизу было написано AAA, и на этом все должно было закончиться. Он добавил дополнительную букву после AAA и поставил F. Кто-нибудь знает, как это исправить? Он делает это и для любых других чисел. 100 100 100. Результат AAAF.
2. Из
else cout << 'F' << endl;
-за этого происходит, когда условие в предыдущемif
равно false. Если вы замените все, кроме первогоif
, наelse if
. это будет исправлено. Так что это происходит, когдаgrade3 > 69
.3. Внизу я должен вывести определенное сообщение на основе предоставленной информации. Итак, если я введу 100 в три раза больше своих оценок, я хочу, чтобы он выводил: ваше среднее значение равно: 100, ваша буквенная оценка равна: (A или B или C или D или F)»Как мне заставить его выводить буквенную оценку на основе заданных оценок? (Кстати, я убрал const char вверху). На данный момент на выходе отображаются три 100-х годов подряд, а затем буквенная оценка A, как мне переместить эту буквенную оценку в следующую строку, где написано сообщение: «Ваше среднее значение: 100, ваша буквенная оценка: »
Ответ №2:
Что касается строки 12, кажется, что вы пытаетесь объявить постоянную переменную, но для переменной нет имени.
Что касается ошибки в строке 6, в сообщении объясняется, что вы могли бы сделать для ее устранения, измените возвращаемый тип main
на int
.
Что касается строки 29, я не думаю, что есть ошибка.