用C语言定义和打印联合体

联合体
定义一个师生信息结构体,并实例化一个结构体数组,用于保存师生的基本信息,其中 un 字段用于保存学生的成绩或者教师的教学科目,最后输出所有人员信息。

不知道做的对不对,供你参考,代码如下:

#include <stdio.h>
#include <string.h>

union umessage{
    char un[10] ;  //这里不知道符合你题目的意思不? 
};

struct message{
    int age;  //学生年龄 
    int cls;  //班级
    union umessage uinfo;  //联合信息 
};

int main(void){
    message s [3]={
        {22,189,"99"},
         {21,190,"数学"},
        { 20,91,"100"} 
    };
    
    
    
//    strcpy(s[0].un,"99"); 
//    strcpy(s[1].un,"数学"); 
//    strcpy(s[2].un,"100"); 
//    
    int i;
    for(i=0;i<3;i++){
        printf("师生信息:%d,%d,%s\n",s[i].age,s[i].cls,s[i].uinfo.un); 
    } 
    
    return 0;
}

img