Функция aquire_marks
предназначена для того, чтобы принимать 5 номеров, введенных пользователем, и хранить их в marks
. При запуске цикл for работает как ожидалось с j=0
, а затем, как и ожидалось, для j=1
, но тогда j
никогда не увеличивается до 2
и остается в 1
, оставив функцию в бесконечном цикле. Если цикл помещен внутри main
, эта проблема не возникает, но я предпочел бы иметь ее внутри отдельной функции, если это возможно. Вы знаете, что здесь происходит?Счетчик циклов, не увеличивающий
#include<stdio.h>
void aquire_marks(char marks[], char names[][11]){ // 11 - max name length + 1
char j, mark;
for(j=0; j<5; j++){
printf("Enter mark for %s: ", names[j]);
scanf("%d", &mark);
}
}
int main() {
char names[5][11] = {"a", "b", "c", "d", "e"};
char marks[5];
aquire_marks(marks, names);
}
Почему^а 'char', а затем используется в качестве индекса в цикле? –
'scanf ("% c ", &mark);'? Не является символом 'char'? Или он должен быть' int'. – Prajwal
Вы передали 'marks []', но проигнорировали его. –