Хорошо, у меня странная проблема, которую я до сих пор не могу решить, и я начинаю сходить с ума.Я пытаюсь вызвать переменные из структуры, но она возвращает мне случайные значения.В настоящее время я вызываю свои структуры с
printf("%s %i %i %i %i\n", student[0].lastName, student[0].assignmentScore, student[0].quizScore[0], student[0].quizScore[1], student[0].finalExamScore);
printf("%s %i %i %i %i\n", student[1].lastName, student[1].assignmentScore, student[1].quizScore[0], student[1].quizScore[1], student[1].finalExamScore);
printf("%s %i %i %i %i\n", student[2].lastName, student[2].assignmentScore, student[2].quizScore[0], student[2].quizScore[1], student[2].finalExamScore);
, но я получаю это обратно
Результат, который я ищу, равен
, но еслиЯ изменяю свое объявление структуры с
struct student student[100];
на
struct student student[3];
Я получаю эти случайные значения обратно Результат, который я ищу:
Ятакже только с использованием 2 студентов, поэтому 3 должно быть достаточно.Разве я не объявляю структуру массива правильно?
Так я назначаю свои структуры
token = strtok(buffer, search);
N = atoi(token);
int dividerCount = 1;
int quizCounter = 0;
printf("'%s'\n", token);
while(token){
if(count == 0){
token = strtok(NULL,search);
M = atoi(token);
printf("'%s'\n", token);
}
if(count >= 1){
for(j = 0; j < (N * (3 + M)); j++){
int divider = M + 3;
if (dividerCount == 1){
token = strtok(NULL, search);
strcpy(student[count - 1].lastName, token);
printf("'%s'\n", token);
} else if(dividerCount == 2){
token = strtok(NULL, search);
student[count - 1].assignmentScore = atoi(token);
printf("'%s'\n", token);
} else if(M + 3){
token = strtok(NULL, search);
student[count - 1].finalExamScore = atoi(token);
printf("'%s'\n", token);
} else {
token = strtok(NULL, search);
printf("'%i'\n", atoi(token));
student[count - 1].quizScore[quizCounter] = token;
quizCounter++;
}
dividerCount++;
}
if(token)
break;
}
count++;
}