Как напечатать значение элемента структурного типа данных в стеке? - PullRequest
0 голосов
/ 16 октября 2019

Я создал структуру данных стека, в которой один элемент является целочисленным типом с именем 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 (которая находится в стеке). что я неправильно написал в своем коде? я предполагаю, что что-то не так с расстановкой скобок?

...