| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 598 人关注过本帖
标题:一个关于线性表很菜的问题。知道怎么对线性表输入输出的救救俺
收藏  订阅  推荐  打印 
zfhb110
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-6-30
一个关于线性表很菜的问题。知道怎么对线性表输入输出的救救俺

下面是我写的一个关于线性表操作的函数(要很多操作,比如排序等,但是在线性表数字输入和输出时就有问题,所以就不写排序的函数了,高手只要教我怎么把他的输入输出问题解决就行)

#include "stdafx.h"
#include "stdlib.h"

#define    TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10

typedef int Status;
typedef int ElemType;

typedef struct
{
    ElemType *elem;
    int length;
    int listsize;
}SqList;

Status InitList_Sq(SqList &L)
{
    L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
    if(!L.elem)exit(OVERFLOW);
    L.length=0;
    L.listsize=LIST_INIT_SIZE;
    return OK;

}//InitList_Sq


void intput(SqList &L)
{
    for(int i=0;L.length++;i++)
    scanf("%d",&L.elem[i]);
    

}

void display(SqList &L)
{
    for(int i=0;i<L.length;i++)
       printf("%d",L.elem[i]);
}

int main()
{
    SqList L;
    InitList_Sq(L);
    printf("请输入待排序的整数:\n");
    intput(L);
    display(L);


    printf("Hello World!\n");
    return 0;
}

最后执行的时候输入许多数,输出始终只有第一个,拜托大家帮帮忙,谢谢


[ 本帖最后由 zfhb110 于 2008-6-30 17:01 编辑 ]
搜索更多相关主题的帖子: 线性  输出  输入  
2008-6-30 16:54
很远的那颗星
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:466
积分:4221
注册:2008-6-30

错误提示发上来看一下.
2008-6-30 16:59
zfhb110
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-6-30

错误也没有,就是我输入几个数比如 2 3 45 62 42 36时,他总只显示第一个数字2
2008-6-30 17:03
zfhb110
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-6-30

我觉得应该是输入那里有问题,可我又不知道怎么改
2008-6-30 17:05
很远的那颗星
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:466
积分:4221
注册:2008-6-30

void intput(SqList &L)
{
    for(int i=0;L.length++;i++)      //这里什么意思?
    scanf("%d",&L.elem[i]);
   

}

Fighting~~~~~~~~
2008-6-30 17:08
zfhb110
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-6-30

就是想把数字输入线性表
2008-6-30 17:11
很远的那颗星
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:466
积分:4221
注册:2008-6-30

就你这个程序来说,我给你改到可以运行吧,具体优化你自已去弄.首先你应该给length一个大于零的初值.然后输入那里改为:
void intput(SqList &L)
{
    for(int i=0;i<L.length;i++)      
    scanf("%d",&L.elem[i]);
   

}
你应该知道,你的输入函数设计的很不好,你好好改良一下吧.

Fighting~~~~~~~~
2008-6-30 17:18
很远的那颗星
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:466
积分:4221
注册:2008-6-30

我要去吃饭了,随便弄一下,不行回来再看了.
//#include "stdafx.h"
#include <stdlib.h>
#include<stdio.h>

#define    TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10

typedef int Status;
typedef int ElemType;

typedef struct
{
    ElemType *elem;
    int length;
    int listsize;
}SqList;

Status InitList_Sq(SqList &L)
{
    L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
    if(!L.elem)exit(OVERFLOW);
    L.length=5;
    L.listsize=LIST_INIT_SIZE;
    return OK;

}//InitList_Sq


void intput(SqList &L)
{
    for(int i=0;i<L.length;i++)
    scanf("%d",&L.elem[i]);
   

}

void display(SqList &L)
{
    for(int i=0;i<L.length;i++)
       printf("%3d",L.elem[i]);   //注意输出格式
}

int main()
{
    SqList L;
    InitList_Sq(L);
    printf("请输入待排序的整数:\n");
    intput(L);
    display(L);


    printf("Hello World!\n");
    system("pause");
    return 0;
}

Fighting~~~~~~~~
2008-6-30 17:22
zfhb110
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-6-30

不管怎么说 谢谢大家
2008-7-1 17:31
zfhb110
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-6-30

那能不能使那个长度实现动态,就是我输入多少就是多少那种?
2008-7-1 17:35
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.062080 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved