Есть ряд проблем с вашим кодом, но не думайте, что я обескураживаю, указывая на них.Если вы относительный новичок, это очень хорошо.
Основная проблема заключается в следующей строке:
cumulativeScore += gradesOfPerson;
.Вы объявили cumulativeScore как указатель ;он содержит адрес интересующих вас данных, а не сами данные.Вам следует либо изменить это значение на
*cumulativeScore += gradeOfPerson
, либо сделать cumulativeScore целочисленной переменной (и изменить все места, где вы используете ее в качестве указателя).
Другая ключевая ошибка в вашем Смена оператора .Вместо чего-то вроде:
case 4: if (grade == 'D') {
// logic to execute if grade is 'D'
}
break;
сделайте это:
case 'D':
// logic to execute if grade is 'D'
break;
Далее вам нужно инициализировать *cumulativeScore
равным 0, потому что в начале выполнения он может содержать что угодно.
Наконец, *score
должен быть числовым типом, а не символом.Значение символа '4'
, интерпретируемое как число, на самом деле не равно 4
, что вызывает ошибки, потому что вы рассматриваете его как таковой.Для справки см. Список кодов символов ASCII здесь: http://www.asciitable.com/
Что касается других проблем (которые на самом деле не вызывают сбой вашей программы, но не являются лучшими практиками):
- Вы используете указатели странно - почему бы просто не выделить обычные переменные?Вы сделали это с
grade
, gradesOfPerson
, i
и j
, так что вы четко знаете, как это сделать.Почему вы выбрали указатели для остальных переменных? - Не включайте
conio.h
.Прежде всего, вы не используете ни одну из объявленных там функций.Во-вторых, он нестандартный и недоступен на большинстве платформ. - Вам следует больше обрабатывать ошибки: вводит ли пользователь разумные оценочные буквы?Вы уверены, что количество курсов, которые они посещают, положительное?И так далее.
Наконец, в качестве заметки, вы можете бесплатно получить версию Microsoft Visual C ++ для Express.Он активно поддерживается и опережает Dev-C ++ на несколько световых лет (например, он помогает правильно делать отступы для кода!: D)
Удачи!