瓦格曼 发表于 2016-4-10 19:30:20

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

为什么我写的那个输出函数没用啊??
// 顺序表的创建.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 ;
        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 << '\t';
        }
        cout << endl;
}
int getelem(sqlist &l, int i, int e)
{
        if (l.length<0 || l.length>NUM)
                return 0;
        else
                e = l.elem;
        return e;
}
int locatelem(sqlist &l, int e)
{
        for (int i = 0; i < l.length; i++)
        {
                if (l.elem == 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 = l.elem;
        }
        l.elem = 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;
                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;
}

瓦格曼 发表于 2016-4-10 19:42:26

唉,没人

shuofxz 发表于 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)吧,这样才是判断数组是否满的条件


下次发帖的时候代码用代码格式发,在编辑栏有一个<>的图标,把代码粘进去再点提交就行

atmo 发表于 2016-4-11 08:33:34

学习了.
页: [1]
查看完整版本: C数据结构。顺序表的插入。