出现了一个不明白的问题请教一下(TAG)
#include<stdio.h>#include<stdlib.h>
typedef struct student
{
int num;
char name[10],sex[10];
float score;
struct student *next;
}STU;
STU *insert(STU *head);
main()
{
STU *head=NULL;
insert(head);
}
STU *insert(STU *head)
{
STU *q,*temp;
int temp1;
float temp2;
head=(STU *)malloc(sizeof(STU));
head->next=NULL;
q=head;
while(1)
{
printf("请输入学号(以-1结束):\n");
scanf("%d",&temp1);
if(temp1==-1)
break;
temp=(STU*)malloc(sizeof(STU));
temp->next=NULL;
temp->num=temp1;
printf("请输入姓名:\n");
scanf("%s",temp->name);
printf("请输入性别:\n");
scanf("%s",temp->sex);
printf("请输入学生成绩:\n");
scanf("%f",&temp2);
temp->score=temp2;
q->next=temp;
temp=temp->next;
}
return head;
}
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int num;
char name[10],sex[10];
float score;
struct student *next;
}STU;
STU *insert(STU *head);
main()
{
STU *head=NULL;
insert(head);
}
STU *insert(STU *head)
{
STU *q,*temp;
int temp1;
head=(STU *)malloc(sizeof(STU));
head->next=NULL;
q=head;
while(1)
{
printf("请输入学号(以-1结束):\n");
scanf("%d",&temp1);
if(temp1==-1)
break;
temp=(STU*)malloc(sizeof(STU));
temp->next=NULL;
temp->num=temp1;
printf("请输入姓名:\n");
scanf("%s",temp->name);
printf("请输入性别:\n");
scanf("%s",temp->sex);
printf("请输入学生成绩:\n");
scanf("%f",&temp);
q->next=temp;
temp=temp->next;
}
return head;
}
为什么上面的第二种在独立的时候就不能正常运行需要第一种才可以,
但是在创建链表的时候,第二种却是可以的,为什么???
谢谢
[[it] 本帖最后由 zhuwei168 于 2008-6-3 10:36 编辑 [/it]]