|
发表于 2020-6-13 19:50:55
|
显示全部楼层
本帖最后由 superbe 于 2020-6-13 19:56 编辑
输入数据的函数应使用指针参数,否则的话,数据只是输入到临时变量里,main里的顺序表并没有得到数据。还有其它一些修改。
- #include <stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #define MAX 100
- typedef struct student
- {
- int number;
- int score;
- }datatype;
- typedef struct shunxubiao
- {
- datatype students[MAX];
- int length;
- }info;
- info kong(); //置空一个顺序表
- void Scanf(info * L); //向顺序表中输入想要输入的数据
- void printflist(info * L); //输出顺序表
- int main()
- {
- info A = kong(); //定义一个顺序表
- Scanf(&A); //向顺序表中输入想要输入的数据
- printflist(&A);
- return 0;
- }
- info kong() //置空一个顺序表
- {
- info L;
- L.length = 0;
- return L;
- }
- void Scanf(info * L) //向顺序表中输入想要输入的数据
- {
- if (L->length == MAX)
- {
- printf("顺序表中已经满了,无法进行输入");
- exit(1);
- }
- char ch;
- do
- {
- printf("请输入学生成绩: ");
- scanf("%d", &L->students[L->length].score);
- printf("请输入学生的学号: ");
- scanf("%d", &L->students[L->length].number);
- L->length++;
- printf("是否继续输入?(Y||N): ");
- scanf(" %c", &ch);
- } while (ch == 'y' || ch == 'Y');
- }
- void printflist(info * L) //输出顺序表
- {
- int i;
- for (i = 0; i < L->length; i++)
- {
- printf("学生的成绩: %3d ", L->students[i].score);
- printf("学生的学号: %d\n", L->students[i].number);
- }
- }
复制代码 |
|