无法进行顺序表的遍历输出,到底是什么地方错了
#include <stdio.h>#include<string.h>
#include<stdlib.h>
#define max 100
typedef struct students
{
int number;
int score;
}list;
typedef list datatype;
typedef struct shunxubiao
{
datatype students;
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.score);
printf("请输入学生的学号:");
scanf("%d", &L.students.number);
L.length++;
printf("是否继续输入?(Y||N):");
scanf(" %c", &ch);
} while (ch=='y'||ch=='Y');
}//这个函数是为了进行数据的输入而准备的
void printflist(info L)//此函数是为了进行函数的输出
{
int i;
for (i=0;i<;i++)
{
printf("学生的成绩");
printf("%d", L.students.score);
printf("学生的学号");
printf("%s", L.students.number);
}
}请求帮助 这个遍历函数应该怎么写啊??{:5_99:} 在vs2019上像是printflist函数中for循环位置的L.length 的值是零,该怎么解决啊?{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:} 顺序表的长度为什么经过了输入之后还是0,明明有将长度加1的语句
本帖最后由 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;
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.score);
printf("请输入学生的学号: ");
scanf("%d", &L->students.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.score);
printf("学生的学号: %d\n", L->students.number);
}
} WFR 发表于 2020-6-13 17:49
顺序表的长度为什么经过了输入之后还是0,明明有将长度加1的语句
在csdn论坛上也是你问的吗,有回答
页:
[1]