幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2545|回复: 3

[通用编程] 顺序表

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-6-2 04:44:45 | 显示全部楼层 |阅读模式
程序如下:
  1. #include<stdio.h>
  2. struct list
  3. {
  4.     char list1[50];
  5.     int size;
  6. };
  7. void setnull(struct list *p)
  8. {
  9.     p->size=0;
  10. }
  11. int length(struct list *p)
  12. {
  13.     return(p->size);
  14. }
  15. void insert(struct list *p,char x,int i)
  16. {
  17.     int j;
  18.     if(i<1&&i>p->size+1)
  19.         printf("无法插入.");
  20.     else
  21.     {
  22.         p->size++;
  23.         for(j=p->size-1;j<=i;j--)
  24.             p->list1[j]=p->list1[j-1];
  25.         p->list1[j]=x;
  26.     }
  27. }
  28. void del(struct list *p,int i)
  29. {
  30.     int j;
  31.     if(i>p->size||i<1)
  32.         printf("不正确.");
  33.     else
  34.     {
  35.         for(j=i-1;j<p->size-1;j++)
  36.             p->list1[j]=p->list1[j+1];
  37.         p->size--;
  38.     }
  39. }
  40. display(struct list *p)
  41. {
  42.     int j;
  43.     for(j=0;j<p->size-1;j++)
  44.         printf("%c-",p->list1[j]);
  45.     printf("%c",p->list1[j]);
  46. }
  47. void main()
  48. {
  49.     struct list l;
  50.     setnull(&l);
  51.     insert(&l,'a',1);
  52.     insert(&l,'b',2);
  53.     insert(&l,'c',3);
  54.     display(&l);
  55. }
复制代码
这个顺序表的程序为什么运行不了呢?要怎么修改才可以呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-6-2 06:36:59 | 显示全部楼层
主要更新模块
void insert(struct list *p,char x,int i)
    {
        int j;
        if(i<1&&i>p->size+1)
            printf("无法插入.");
        else
        {
            p->size++;
            for(j=p->size-1;j>=i-1;j--)
                p->list1[j-1]=p->list1[j];
            p->list1[i-1]=x;
        }
    }
以上....
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-6-2 07:07:29 | 显示全部楼层
似乎还是不行的说, [s:5]  是插入怎么会是 p->list[j-1]=p->list[j]呢,怎么也应该是 J-1赋给 J 吧 [s:3]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-6-2 07:17:11 | 显示全部楼层
那个是J,是小写的j它与[重合了 [s:5]
还有忘了说了,你的顺序表一开始时没有初使化数据,所以无法执行插入操作.....
void create(struct list *p,int i)
{
        char cdata;
        int count;
       p->size=i;
       for(count=0;count<=i-1;count++)
        {
               scanf("%c",&cdata);
               p->list1[count]=cdata;
         }
     }
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-29 14:38 , Processed in 0.023290 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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