Если вы хотите напечатать три символа, как указано в выходных данных, то ваш массив также должен содержать три символа:
char moduleGrades[2];
Также это l oop здесь:
int i;
for (i = 1; i <= moduleNumber; i++)
Само по себе это не так, потому что вы вычитаете 1
, вы находитесь внутри l oop, но я бы сделал это и просто вместо этого сказал бы:
for (int i = 0; i < moduleNumber; i++)
Вызов fgets
внутри l oop неверен. Вы даете ему char
вместо указателя на char
. Вместо использования fgets
, я бы просто использовал scanf
снова:
scanf(" %c", &moduleGrades[i]);
Когда вы печатаете те char
, которые вы читаете, вам также нужно использовать спецификатор формата %c
:
printf("%c", moduleGrades[0]);
Таким образом он напечатает char
, который вы прочитали ранее. Например, если вы нажали A
, будет напечатано A
. С %d
он, вероятно, выведет 65
, но это неопределенное поведение, так что вместо этого может произойти что-то еще, и нет никакой гарантии, что именно произойдет.