| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 659 人关注过本帖
标题:c语言建线性表出错。。。
只看楼主 加入收藏
追寻XT
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:32
注 册:2014-8-20
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:7 
c语言建线性表出错。。。
程序代码:
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>

struct STU{
    char Name[20];
    int  Age;
    int  Score;
};
typedef struct STU stu;

struct LIST{
    stu   S[20];
    int   Length;
};
typedef struct LIST List;

void init(List* L){
    L=(List*)malloc(sizeof(List));
    //L->Length=0;
}

void Found_LIST(List L,stu S[]){
    int count;
    for(count=0;count<L.Length;count++){
    L.S[count]=S[count];
}
void Print_List(List L){
    printf("Account  Name  Age  Score\n");
    int i;
    for(i=0;i<L.Length;i++)
    printf("%4d%4d%4d%4d",i,L.S[i].Name,L.S[i].Age,L.S[i].Score);
}
void main(void){
    List L; stu S[3];    init(L);
    L.Length=3;
    strcpy(S[1].Name,"TOM");S[1].Age=20;S[1].Score=90;
    strcpy(S[2].Name,"Jane");S[2].Age=21;S[2].Score=80;
    strcpy(S[3].Name,"Mari");S[3].Age=20;S[3].Score=90;

    Found_LIST(L,S[3]);
    Print_List(L);
}
搜索更多相关主题的帖子: c语言 线性表 
2014-09-21 21:46
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
编译器的错误提示应该很明显的吧?为什么不仔细看看

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-21 22:13
clausewitz
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-9-22
收藏
得分:0 
您的C语言是用ultraedit写的吗?
2014-09-22 10:12
fogmaple
Rank: 4
来 自:江西省赣州市于都县
等 级:业余侠客
威 望:1
帖 子:119
专家分:233
注 册:2014-7-28
收藏
得分:0 
啥样的错误呀
2014-09-22 13:25
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:0 
这是你自己写的吗?

kajj->1314 努力每一天。
2014-09-22 14:17
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:4 
程序代码:
void main(void)
{
    stu S[3];    
    List *L = NULL;
    L=(List*)malloc(sizeof(List));

    L->Length = 3;

    strcpy(S[0].Name,"TOM");S[0].Age=20;S[0].Score=90;
    strcpy(S[1].Name,"Jane");S[1].Age=21;S[1].Score=80;
    strcpy(S[2].Name,"Mari");S[2].Age=20;S[2].Score=90;

    //Found_LIST(L,S);
    memcpy(L->S,S,L->Length*sizeof(stu));

   //    Print_List(L);
    printf("Account  Name  Age  Score\n");
    int i;
    for(i=0;i<L->Length;i++)
    {
        printf("%4d    %4s %4d  %4d\n",i+1,L->S[i].Name,L->S[i].Age,L->S[i].Score);
    }
}
函数不会用不要乱用,修改后的。你自己比对下吧

kajj->1314 努力每一天。
2014-09-22 14:55
律吕调阳
Rank: 2
等 级:论坛游民
威 望:2
帖 子:16
专家分:93
注 册:2014-6-9
收藏
得分:6 
楼主你好像写的有问题。
我你写了一个简单的。
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
#include <string.h>
typedef struct STU* PLIST; //定义指针

struct STU{
    char Name[20];
    int  Age;
    int  Score;
    PLIST m_next;
}*m_head,*m_tail;
typedef struct STU stu;

//初始化
void initList()
{
    m_head = m_tail = NULL;
}

//添加元素
stu* pushData(const char*name,const int ae,const int Sc)
{
    stu* node = (stu*)malloc(sizeof(stu));
    node->Age = ae;
    node->Score = Sc;
    strcpy(node->Name,name);  //字符串不能按位拷贝,要特殊处理
    node->m_next = NULL;
   
    if(!m_head)   //判断头结点是否为空,空则将头指针指向这个新建的节点
    {
    m_head  = node;
        strcpy(m_head->Name,node->Name);

    }else  //不为空则将尾指针的m_next指针指向新建的这个节点
    {
       m_tail ->m_next = node;
   
    strcpy(m_tail->m_next->Name,node->Name);
    }

    m_tail = node;  //最后将尾指针指向指向心创建的节点
    strcpy(m_tail->Name,node->Name);
    return m_head;  

}

//打印链表
void printListy(stu* head)
{
/*
*循环打印链表
*
*/
    stu* temp;
    for(temp = head;temp;temp = temp->m_next)
    printf("Name:  %s\nAge:  %d\nScore:  %d\n",
            temp->Name,temp->Age,temp->Score);
}

//删除链表
void deleteList(stu *head)
{
/* 循环遍历链表的各个节点,不为空则删除这个节点
 *为空则循环结束
 */
    int value = 1;
    stu* node = head->m_next;
    for(;node;node = node->m_next)
    {
    free(head);
    head = node;
    }   
}



int main()
{
    initList();
    pushData("as1dad",121,198);
    pushData("as2dad",123,298);
    pushData("as3dad",124,398);
    pushData("as4dad",125,498);

   printListy(m_head);
   deleteList(m_head);
    return 0;
}
2014-09-22 19:46
追寻XT
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:32
注 册:2014-8-20
收藏
得分:0 
我的原程序,是堆空间未释放,先用List定义了L,已经分配了空间,又用init()初始化L,又为L分配了堆空间,当init()返回主函数main(),堆空间就无法释放,造成内存泄露,运行出错。。。
2014-09-27 09:45
快速回复:c语言建线性表出错。。。
数据加载中...
 
   



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

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