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