Я создал структуру данных стека, в которой один элемент является целочисленным типом с именем Top, а другой - структурным типом данных с именем CollegeStudent. переменная CollegeStudent имеет несколько элементов внутри, а также содержит соответствующие данные одного студента колледжа. Данные студентов колледжа помещаются вместе в стопку. это код:
typedef enum { False, True } boolean;
typedef struct { char ID_Number[16];
char Name[100];
char Gender;
float Grade;
char Date[10];
} CollegeStudent;
typedef struct { CollegeStudent container[101];
int top;
} stackStudentReport;
void PushReport( stackStudentReport *S, CollegeStudent M){
/*KAMUS LOKAL*/
int i;
CollegeStudent temp;
/*ALGORITMA*/
if(isFullStack((*S))!=1){
(*S).top=(*S).top+1;
(*S).container[(*S).top]=M;
for(i=(*S).top;((*S).container[i]).Grade<((*S).container[i-1]).Grade;i--){
temp=((*S).container[i-1]);
((*S).container[i-1])=((*S).container[i]);
((*S).container[i])=temp;
}
}
else{
printf("Stack is Full\n");
}
}
boolean isFullStack(stackStudentReport S){
if(S.top==100){
return 1;
}
else{
return 0;
}
}
int main(){
CollegeStudent coed1;
coed1.Grade = 1.0;
stackStudentReport stack_student;
PushReport(&stack_student, mhs1);
printf("the %.5f", (stack_student.container[1]).Grade);
return 0;
}
это результат:
0.00000
я ожидал, что результат будет 1,00000
я хочунапечатать элемент Grade моей переменной CollegeStudent (которая находится в стеке). что я неправильно написал в своем коде? я предполагаю, что что-то не так с расстановкой скобок?