有哪位学长学姐能帮帮我看这串代码吗

啊,为啥我的结果是一串数字啊,而不是正确结果的那种列表,有哪位学长学姐会不会用typedef struct或者是ADT Complex来弄实现对数据对象的存储吗标签🤔👀

img

img

 作业1. typedef.c
 1
 2
 3     #include<stdio.h>
 4TPDTT
 5            int num[20];
 6            hARNAME20CLASS[20];
 7  Ljstudent;
 8FINT mAIN()
 g            STUDENT moHAomiNg;
 10             mohaoming.num[20j=202102162133
 11             mohaoming.name[20]="奠浩明";
 12             mohaoming.class[20]="计科5班";
 13             printf("%d%f%f"mohaoming.num201.mohaoming.namel201.mohaoming.class201);
 14
 15

代码很多问题。
1.class是c++关键字,不建议当作变量名。
2.数组只能在初始化的同时赋值,在结构体里已经初始化了,不能在初始化后再赋值。
3.char 数组,用printf("%s",数组名)。int 数组,只能遍历数组下标打印。
考虑到学号超出int范围,只能用long long变量储存,打印时用printf("%lld",变量名)。所以建议把结构体里全部改成char指针类型。如:

typedef struct {
    char * num;
    char * name;
    char * classname;
}student;

然后main函数赋值用这种方式:

student mohaoming;
    char num[20] = "20210216213";
    char name[20] = "莫浩明";
    char classname[20] = "计科5班";
    mohaoming.num = num;
    mohaoming.name = name;
    mohaoming.classname = classname;
    printf("%s %s %s", mohaoming.num, mohaoming.name, mohaoming.classname);

int 数组不能直接输出,char数组用%s!