注册 登录
编程论坛 数据结构与算法

请问各位高手这个程序错在哪了

飘羽 发布于 2011-03-06 02:31, 437 次点击
#include <iostream>
using namespace std;
typedef struct
{
    int data[100];
    int length;
}sqlist;
void creatsqlist(sqlist *s,int a[])
{
    s=(sqlist *)malloc(sizeof(sqlist));
    cout<<"请输入数据的个数:"<<endl;
    int n;
    cin>>n;
    cout<<"请输入建表的数据:"<<endl;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        s->data[i]=a[i];
    }
    s->length=n;
}

void dissqlist(sqlist *s)
{
    if(s)
        cout<<"输出数据为:"<<endl;
        for(int i=0;i<s->length;i++)
            cout<<s->data[i]<<endl;
}

void main()
{
   
    sqlist *s;
    int a[100];
    s=(sqlist *)malloc(sizeof(sqlist));
    creatsqlist(s,a);
    dissqlist(s);
}

4 回复
#2
qq10235692232011-03-06 09:51
#include <iostream>
using namespace std;
typedef struct SL  //结构体可以不要名字
{
    int data[100];
    int length;
}sqlist;
void creatsqlist(struct SL *s,int a[])
{
    cout<<"请输入数据的个数:"<<endl;
    int n;
    cin>>n;
    cout<<"请输入建表的数据:"<<endl;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        s->data[i]=a[i];
    }
    s->length=n;
}

void dissqlist(struct SL *s)
{
    if(s)
        cout<<"输出数据为:"<<endl;
        for(int i=0;i<s->length;i++)
            cout<<s->data[i]<<endl;
}

void main()
{
   
    sqlist *s;
    int a[100];
    s=(struct SL*)malloc(sizeof(sqlist));
    creatsqlist(s,a);
    dissqlist(s);
}
//注意红色部分,你的定义和int a; a b;一样的意思,sqlist是一个struct变量,是一种数据类型,他可以定义他这种类型变量,但是他的变量sqlist却不可以定义struct变量。
#3
诸葛修勤2011-03-06 22:56
#include <iostream>
using namespace std;
typedef struct
{
    int data[100];
    int length;
}sqlist;
sqlist * creatsqlist(sqlist *s,int a[])
{
    s=(sqlist *)malloc(sizeof(sqlist));
    cout<<"请输入数据的个数:"<<endl;
    int n;
    cin>>n;
    cout<<"请输入建表的数据:"<<endl;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        s->data[i]=a[i];
    }
    s->length=n;

    return s;
}

void dissqlist(sqlist *s)
{
    if(s)
        cout<<"输出数据为:"<<endl;
        for(int i=0;i<s->length;i++)
            cout<<s->data[i]<<endl;
}

void main()
{
   
    sqlist *s;
    int a[100];
    s=(sqlist *)malloc(sizeof(sqlist));
    s = creatsqlist(s,a);
    dissqlist(s);
}

#4
诸葛修勤2011-03-06 22:59
指针理解不够到位
是c++ 的话 建议 你还是用引用 好点  不需要考虑这点
#5
飘羽2011-03-07 01:11
谢谢啦
1