| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 488 人关注过本帖
标题:问题在程序中有显示。。。输入姓名和工资,输出姓名工资,麻烦了
只看楼主 加入收藏
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
结帖率:83.33%
收藏
已结贴  问题点数:5 回复次数:5 
问题在程序中有显示。。。输入姓名和工资,输出姓名工资,麻烦了
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 15
struct system{
    char name[M];
    int wage;
    struct system *next;
};
int main (void)
{
    struct system *head=NULL;
    struct system *prev,*current;
    char input [M];
    puts("请输入员工姓名:");
    while(gets(input)!=NULL&&input[0]!='\0')
    {
        current=(struct system *)malloc(sizeof(struct system));
        if(head==NULL)
            head=current;
        else
            prev->next=current;

        current->next=NULL;
        strcpy(current->name,input);
        puts("请输入你的工资:");
        scanf("%d",&current->wage);
        while(getchar()!='\n')
            continue;
        puts("请输入下个员工姓名:");
        prev=current;
    }
    if(head==NULL)
        printf("没有输入数据");
    else
        printf("下面是输出数据\n");
    current=head;
    while(current!=NULL)
    {
        printf("姓名:%s  工资:%d\n",current->name,current->wage);
        current=current->next;
    }
/*这个位置如果添加了一个“current=head;”为什么就不能正常运行了*/
    while(current!=NULL)
    {
        free(current);
        current=current->next;
    }
    printf("ok!");
    return 0;
}
搜索更多相关主题的帖子: current include system 姓名 
2014-01-02 16:48
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:3 
诺诺的问一下。
 current=head;
    while(current!=NULL)
    {
        printf("姓名:%s  工资:%d\n",current->name,current->wage);
        current=current->next;
    }
/*这个位置如果添加了一个“current=head;”为什么就不能正常运行了*/ 你这里加上“current=head;”这句话之后
    while(current!=NULL)
    {
        free(current); 下面这里释放current  current->next是什么?
        current=current->next;
    }
    printf("ok!");
    return 0;

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-01-02 16:59
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
收藏
得分:0 
不懂
2014-01-02 23:22
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
你已经将current释放了  它的下一个节点你还能找到么?

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-01-03 17:32
BCCNMelo2013
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2013-12-28
收藏
得分:3 
/*这个位置如果添加了一个“current=head;”为什么就不能正常运行了*/
     while(current->next!=NULL)
     {
         free(current);
         current=current->next;
     }
     free(current);
     printf("ok!");
2014-01-04 20:30
BCCNMelo2013
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2013-12-28
收藏
得分:0 
我胡言乱语了。。。楼上说的对
2014-01-04 20:31
快速回复:问题在程序中有显示。。。输入姓名和工资,输出姓名工资,麻烦了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023621 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved