当前位置: 代码迷 >> C语言 >> 出现了一个不明白的问题请教一下(TAG)
  详细解决方案

出现了一个不明白的问题请教一下(TAG)

热度:244   发布时间:2008-06-03 10:29:01.0
出现了一个不明白的问题请教一下(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]]
搜索更多相关的解决方案: 新的出的问题  

----------------解决方案--------------------------------------------------------
  相关解决方案