| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:结构体问题
只看楼主 加入收藏
Love_2009
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2009-8-18
结帖率:60%
收藏
 问题点数:0 回复次数:7 
结构体问题
#include "stdio.h"
#define MAXLEN 100
struct SqList
{
    int s[MAXLEN];
    int len;
}a;
int insert(int i,SqList int x,struct SqList *q)
{
    int j;
        if(i<1||i>(*q).len)
            return(0);
        else
        {
            for(j=(*q).len;j<=i;j--)
                ((*q).s[j+1])=((*q).s[j]);
            (*q).s[i]=x;
            (*q).len++;
            return(1);
        }

}
void main()
{
    int b=4,c,k,d;
    d=9;
    struct SqList *p,a;
    p=&a;
    (*p).s[MAXLEN]={0,1,2,3,4,5,6,7,8};
    (*p).len=8;
    for(k=1;k<=a.len;k++) printf("%3d",(*p).s[k]);
    printf("\n");
    c=insert(b,d,p);
    if(c==0)
        printf("error:");
    else
    {
        for(k=1;k<=a.len;k++)
            printf("%3d",(*p).s[k]);
    }
    printf("\n");

}




不知道为什么,我这个程序总是调试不出来,请各位高手帮忙看一下了,小弟在这里先谢谢各位了
搜索更多相关主题的帖子: 结构体 
2009-09-17 16:47
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
int insert(int i,SqList int x,struct SqList *q) /* 第二个参数定义不对,去掉SqList */
{
    int j;
        if(i<1||i>(*q).len)
            return(0);
        else
        {
            for(j=(*q).len;j<=i;j--)   /* 循环条件改:j>=i */
                ((*q).s[j+1])=((*q).s[j]);
            (*q).s[i]=x;
            (*q).len++;
            return(1);
        }
 
}
void main()
{
    int b=4,c,k,d;
    d=9;            /* 这条放在下条定义变量的下面 */
    struct SqList *p,a;
    p=&a;
    (*p).s[MAXLEN]={0,1,2,3,4,5,6,7,8}; /* 这应该用个循环对结构体赋值,如:for(k=0;k<9;k++)(*p).s[k]=k; */
    (*p).len=8;


[ 本帖最后由 UserYuH 于 2009-9-17 17:27 编辑 ]

努力—前进—变老—退休—入土
2009-09-17 17:26
cuixingasd
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
收藏
得分:0 
insert(..,SqList int x..) 这地方是不是定义错了!
2009-09-17 17:27
DMS
Rank: 2
等 级:论坛游民
帖 子:54
专家分:48
注 册:2009-6-28
收藏
得分:0 
#include "stdio.h"
 
    struct sql
{
    int s[10];
    int len;
};
int insert(int i,int x,struct sql *q)
{
    int j;
        if(i<1||i>(q->len))
            return(0);
        else
        {
            for(j=q->len;j<=i;j--)
                (q->s[j+1])=(q->s[j]);
            q->s[i]=x;
            q->len++;
            return(1);
        }
 
}
void main()
{
 
struct sql *p;
struct sql a;
int b=4,c,i,d;
 
    for(i=0;i<(p->len);i++) a.s[i]=i;
    a.len=8;
    p=&a;
    d=9;
    p=&a;
    for(i=0;i<=p->len;i++) printf("%3d",p->s[i]);
    printf("\n");
    c=insert(b,d,p);
    if(c==0)
        printf("error:");
    else
    {
        for(i=0;i<=p->len;i++)
            printf("%3d",p->s[i]);
    }
    printf("\n");
 
}



WIN-TC编译成功了~~
好多错误啊~~~~~~~~
2009-09-17 17:49
Love_2009
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2009-8-18
收藏
得分:0 
回复 4楼 DMS
你那个结构数组怎么没有初始化呀,还有不好意思呀,因为我是新手,他说我没有分数给你们
2009-09-17 22:54
Love_2009
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2009-8-18
收藏
得分:0 
回复 4楼 DMS
对不起呀,我看到了,你赋了初始值,但是运行的时候就出现这个问
新建 Microsoft Word 文档.rar (59.47 KB)
2009-09-17 22:58
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:0 
哎 你的数据结构学的好像一点都不好啊 连基础的顺序表都不会,做的那么乱和麻烦
应该减少指针的使用 你也不会用指针 数组也不会 好好学习吧
下面的是在vc++6.0测试过的 希望对你有点帮助吧
#include "stdafx.h"
#define listsize 5
  
typedef struct
{
    int a[listsize];
    int len;
}list;
void insert(list *x,int y,int i);
void show(list *x);
int main(int argc, char* argv[])
{
    int i,j,data;
    list x;
    printf("creat list\n");
    for(i=0;i<3;i++)
    {
        scanf("%d",&x.a[i]);
        x.len=i+1;
    }
    printf("show list\n");
    show(&x);
    printf("input insert position and data\n");
    scanf("%d%d",&j,&data);
    insert(&x,data,j);
    printf("show list\n");
    show(&x);
    return 0;
}
 
 
 
void insert(list *x,int y,int i)
{
    int j;
    if(i<1||i>x->len+1)
        printf("error position\n");
    else if(x->len>=listsize)
        printf("overflow\n");
    else
    {
        for(j=x->len-1;j>=i-1;j--)
        x->a[j+1]=x->a[j];
        x->a[i-1]=y;
        x->len++;
    }
}
 
void show(list *x)
{
    int i;
    for(i=0;i<x->len;i++)
        printf(" %d ",x->a[i]);
    printf("\n");
}
2009-09-18 00:14
Love_2009
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2009-8-18
收藏
得分:0 
回复 7楼 shuijiashui8
太复杂了,能跟我说明一下吗?在这里先谢谢你了
2009-09-18 13:00
快速回复:结构体问题
数据加载中...
 
   



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

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