鱼C论坛

 找回密码
 立即注册
查看: 2514|回复: 3

C数据结构。顺序表的插入。

[复制链接]
发表于 2016-4-10 19:30:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么我写的那个输出函数没用啊??
// 顺序表的创建.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
#define NUM 100
#define N 5
typedef struct
{
        int *elem;
        int length;
}sqlist;
int initlist(sqlist &l)
{
        l.elem = new int [NUM];
        if (!l.elem)
                return 0;
        l.length = 0;
        return 1;
}
void outlist(sqlist &l)
{
        for (int i = 0; i < l.length; i++)
        {
                cout << l.elem[i] << '\t';
        }
        cout << endl;
}
int getelem(sqlist &l, int i, int e)
{
        if (l.length<0 || l.length>NUM)
                return 0;
        else
                e = l.elem[i - 1];
        return e;
}
int locatelem(sqlist &l, int e)
{
        for (int i = 0; i < l.length; i++)
        {
                if (l.elem[i] == e)
                        return i + 1;
        }
        return 0;
}
int listinsert(sqlist &l, int i, int e)
{
        int j;
        if (i<1 || i>l.length)
                return 0;
        if (l.length == N)
                return 0;
        for (j = l.length - 1; j >= i - 1; j--)
        {
                l.elem[j + 1] = l.elem[j];
        }
        l.elem[i-1] = e;
        ++l.length;
        return 1;
}
int main()
{
        sqlist l;
        int j = 0, e = 0, n = 0, c = 0, m = 0;
        initlist(l);
        cout << "输入5个数:";
        for (int i = 0; i < N; i++)
        {
                cin >> l.elem[i];
                l.length++;
        }
        outlist(l);
        cout << "输入位置取值:";
        cin >> j;
        cout << "该值为:" << getelem(l, j, e) << endl;
        cout << "输入要查找的数:";
        cin >> n;
        cout << "该数位于第" << locatelem(l, n) << "上" << endl;
        cout << "输入要插入的数:";
        cin >> m;
        cout << "输入要插入的位置:";
        cin >> c;
        listinsert(l, c,m);
        outlist(l);
            return 0;
}

还是原来的

还是原来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-4-10 19:42:26 | 显示全部楼层
唉,没人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-10 23:57:22 | 显示全部楼层
本帖最后由 shuofxz 于 2016-4-11 10:30 编辑
if (l.length == N)
            return 0;
这是你listinsert函数里面的判断条件,你上来就输入了5个数,N=5,到这的时候就直接跳出了呀
应该改成(l.length == NUM)吧,这样才是判断数组是否满的条件


下次发帖的时候代码用代码格式发,在编辑栏有一个<>的图标,把代码粘进去再点提交就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-11 08:33:34 | 显示全部楼层
学习了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表