| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1482 人关注过本帖
标题:求问,L->a[i]=getchar();为何出错呢
只看楼主 加入收藏
liuxinyancom
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-10-16
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:19 
求问,L->a[i]=getchar();为何出错呢
//【考察点:顺序表】编写一个程序,其功能是:在一个乱序的顺序存储线性表中,删除所有值相等的多余元素。
#include<stdio.h>
#define N 100
typedef char DataType;
typedef struct
{
    DataType a[N];
    int last;
}SeqList;
//SeqList* L;
 SeqList *Input(SeqList *L)
{
    int i=0;
    L->a[i]=getchar();//为何这一步就无法赋值(执行)呢
    while(L->a[i]!='#'&&i<N);
    {   
        i++;
        L->a[i]=getchar();//同样执行不下去            
    }
    L->last=i-1;
    return L;
}
int DelList(SeqList* L,DataType x[])
{

    int l=0;
    for(int i=0;i<L->last;i++)
    {

        for(int j=i+1;j<=L->last;j++)
        {
            if(L->a[i]==L->a[j])
            {
            
                x[l]=L->a[j];//把预删除元素存放到x[l]中
                l++;
                for(int k=j;k<L->last;k++)
                {
                    L->a[k]=L->a[k+1];
                }
                L->last=L->last-1;
                j=j-1;
            }
        }
    }return 0;
}
int Output(SeqList* L,DataType x[])
{

    for(int i=0;i<=L->last;i++)
        printf("%c",L->a[i]);
    printf("\n");
    printf("输出删除元素:");
    for(i=0;i<=L->last;i++)
        printf("%c",x[i]);
    printf("\n");
    return 0;
}
int main(void)
{
    SeqList *L;
    DataType x[N];
    printf("输入随意的一组字符,个数小于100,'#'为终止符:");
    Input(L);
    DelList(L,x);
    printf("输出删除了大小相同数字的一组数字:");
    Output(L,x);
    return 0;
}

搜索更多相关主题的帖子: include return 线性表 元素 
2013-10-16 15:39
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:9 
L->a[i]=getchar();//为何这一步就无法赋值(执行)呢
    while(L->a[i]!='#'&&i<N);   //这里多了个分号
    {   
        i++;
        L->a[i]=getchar();//同样执行不下去            
    }

总有那身价贱的人给作业贴回复完整的代码
2013-10-16 16:00
liuxinyancom
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 2楼 embed_xuel
sorry,那个是笔误。。。
2013-10-16 16:03
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
SeqList *L;
    DataType x[N];
    printf("输入随意的一组字符,个数小于100,'#'为终止符:");
    Input(L);   //L都没分配空间,你玩个毛线啊?

总有那身价贱的人给作业贴回复完整的代码
2013-10-16 16:15
liuxinyancom
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 4楼 embed_xuel
L分配了呀,在Input里面不就是对L里面成员结构的初始化么,L又不是单链表,应该不用malloc吧
2013-10-16 16:25
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 5楼 liuxinyancom
L是指针类型,你自己写的代码,懂不?

总有那身价贱的人给作业贴回复完整的代码
2013-10-16 16:45
liuxinyancom
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 6楼 embed_xuel
所以你的意思是在    SeqList *L;后面加一句    L=(SeqList*)malloc(SeqList);???
2013-10-16 16:52
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 7楼 liuxinyancom
指针L指向哪里?

总有那身价贱的人给作业贴回复完整的代码
2013-10-16 16:54
liuxinyancom
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-10-16
收藏
得分:0 
回复 8楼 embed_xuel
指向结构体中的成员呀,但是这个时候应该不用分配内存空间吧,因为这个时候   SeqList*L已经对L进行了初始化,L是一个结构体类型的指针,就如同int*L一样。
2013-10-16 17:10
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:1 
看一下什么叫野指针,你定义了一个指针 它就能自动指向结构体了吗?
2013-10-16 17:19
快速回复:求问,L->a[i]=getchar();为何出错呢
数据加载中...
 
   



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

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