| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 570 人关注过本帖
标题:令人郁闷的顺序表没有定义问题。
只看楼主 加入收藏
如果我是在想
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-21
结帖率:33.33%
收藏
已结贴  问题点数:5 回复次数:4 
令人郁闷的顺序表没有定义问题。
我写的一个简单的程序,明明定义了但是编译器却说我没定义,搞得我好郁闷,求各位大虾解释!!!!红色为我的定义部分,编译器如是说
F:\个人编程\顺序表就地逆置\顺序表就地逆置.cpp(88) : error C2039: 'Iist' : is not a member of 'SeqList'
 F:\个人编程\顺序表就地逆置\顺序表就地逆置.cpp(10) : see declaration of 'SeqList'
执行 cl.exe 时出错.
#define MaxSize 10
#include "stdafx.h"
#include<stdio.h>
typedef int DataType;
typedef struct
{
    DataType list[MaxSize];
    int size;
}SeqList;
void ListInitiate(SeqList*L)
{
    L->size=0;
   
};
int ListInsert(SeqList*L,int i,DataType x)
{
    int j;
    if(L->size>=MaxSize)
    {
        printf("顺序表已满无法插入!\n");
        return 0;
    }
    else if(i<0||i>L->size)
    {
        printf("插入参数的位置不合法\n");
        return 0;
    }
    else
    {
        for(j=L->size;j>i;j--)
            L->list[j]=L->list[j-1];
        L->list[i]=x;
        L->size++;
        return 1;
    }
   
};
int ListDelete(SeqList*L,int i,DataType x)
{
    int j;
   
    if(L->size<=0)
    {
        printf("顺序表已空,无数据元素可删\n");
        return 0;
    }
    else if(i>L->size-1||i<0)
    {
        printf("参数i不合法\n");
        return 0;
    }
    else
    {   
        x=L->list[i];
    for(j=i+1;j<=L->size-1;j++)
   
        L->list[j-1]=L->list[j];
        L->size--;
        return 1;

    }
};
int ListGet(SeqList *L,int i,DataType x)
{
    if(i<0||i>(L->size-1))
    {   
        printf("参数i不合法\n");
   
        return 0;
    }
    else
    {
        x=L->list[i];
        return 1;
    }
};
SeqList *SeqList_Swap(SeqList *L)
{
    //SeqList *;
    int i,temp;
    for(i=0;i<(L->size)/2;i++)
    {
        temp = L->list[L->size-1];
        L->Iist[L->size-1] = L->list[i];
        L->list[i] = temp;
    }
};
int main(int argc, char* argv[])
{   
    SeqList *head,*change;//
    int i,x ;
    ListInitiate(head);
    for(i=0;i<10;i++)
    ListInsert(head,i,i+1);
    printf("您输入的数据是:\n");
    for(i=0;i<10;i++)
    {
        ListGet(head,i,x);
        printf("%d  ",x);
    }
    change=SeqList_Swap(head);
    printf("就地逆置后的数据是:\n");
    for(i=0;i<10;i++)
    {
        ListGet(change,i,x);
        printf("%d  ",x);
    }

    printf("\nHello World!\n");
    return 0;
}
搜索更多相关主题的帖子: member include 
2012-09-23 15:03
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:3 
  L->Iist[L->size-1] = L->list[i];    指的就是这语句中的Iist不是成员,看的出来了撒
2012-09-23 18:52
如果我是在想
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-21
收藏
得分:0 
亲,DataType list[MaxSize];
这不是声明?咋就那么纠结呢?不懂不懂,WHY
2012-09-23 19:31
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:3 
L->Iist[L->size-1],你写成大写的了,
SeqList *SeqList_Swap(SeqList *L)        你的返回值到哪去了
 {
     //SeqList *;
     int i,temp;
     for(i=0;i<(L->size)/2;i++)
     {
         temp = L->list[L->size-1];
         L->Iist[L->size-1] = L->list[i];
         L->list[i] = temp;
     }
 };


int ListGet(SeqList *L,int i,DataType x)           你确定在用ListGet(change,i,x);时候x真的得到了那个值吗
 {
     if(i<0||i>(L->size-1))
     {   
        printf("参数i不合法\n");
     
        return 0;
     }
     else
    {
         x=L->list[i];
         return 1;
     }
 };


 



         
2012-09-23 22:45
如果我是在想
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-21
收藏
得分:0 
亲,操作对象是 *L,即指针,只要你对*L操作,返回值也改变了,我知道你想跟我说要在x前加个*,然后再在函数里的x前加个*,我试过了,一样的,两个都正确。
int ListGet(SeqList *L,int i,DataType x)
          {
     if(i<0||i>(L->size-1))
     {   
        printf("参数i不合法\n");
     
        return 0;
     }
     else
    {
         x=L->list[i];
         return 1;
     }
};

2012-09-23 23:23
快速回复:令人郁闷的顺序表没有定义问题。
数据加载中...
 
   



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

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