C语言的链表中的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 10:27:03
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct student)
int n;
struct student
{
long num;
float score; /*这里用整型就能顺利运行,用实型就会出现错误(下面用scanf时,都统一了)*/
struct student * next;
};

void main()
{
struct student *creat(void);
struct student * ahead;
struct student * bhead;
printf("请输入表a:\n");
ahead=creat();
printf("请输入表b:\n");
bhead=creat();
}

struct student * creat(void)
{
struct student * head;
struct student * p1;
struct student * p2;
n=0;
p1=p2=(struct student *) malloc(LEN);
if(p1==NULL)
{

exit(-1);
}
printf("请输入学生的学号和成绩(如果想结束请输入0):\n");
scanf("%ld,%f",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1) head = p1;

struct student * creat(void)
{
struct student * head;
struct student * p1;
struct student * p2;
n=0;
p1=p2=(struct student *) malloc(LEN);
p1->score=0.0;/*可在此处加一个初始化操作。原因在下面解释*/
if(p1==NULL)
{

exit(-1);
}
printf("请输入学生的学号和成绩(如果想结束请输入0):\n");
scanf("%ld,%f",&p1->num,&p1->score);
----------
原因:因为此程序之前没有进行过浮点数的运算,就不会自动加载浮点数运行期库。所以此时用%f就会出错。在之前进行一次初始化就可以了。

报的什么错?