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

刚开始接触数据结构,请大神帮忙看一下!

笔墨痕干 发布于 2014-03-25 22:52, 571 次点击
#include<stdio.h>
#define MaxSize 20//定义全局变量。
typedef struct//结构体的定义
{
    int count[MaxSize];
    int listlength;

}SeqList;
void InitList(SeqList l)//有序列表的初始化。
{
    l.listlength=0;
}
void BaoCun(SeqList *l)//向有序列表中输入数据保存并显示。
{
   
    int i=0,j;
    printf("向有序列表中输入第一个数据\n");
    scanf("%d",&l->count[i]);
    printf("继续向有序列表中输入其它的数据\n");
    while(l->count[i]!=0)
    {
        i++;
        scanf("%d",&l->count[i]);
        l->listlength++;
    }
    for(j=0;j<=l->listlength-1;j++)
        printf("%d ",l->count[j]);
        printf("序列表中有%d个元素\n",i);
        printf("\n\n");
}
void InsList(SeqList *l,int n,int x)//在某个位置插入数据。
{
    int i;
    if(n<=l->listlength&&n>0)
    {
        for(i=l->listlength-1;i>=n-1;i--)
            l->count[i+1]=l->count[i];
        l->count[i]=x;
        l->listlength++;
    }
    for(i=0;i<l->listlength;i++)
    printf("%d ",l->count[i]);
}
void main()
{
    int x,n;
    SeqList list;
    InitList(list);
    BaoCun(&list);
    printf("请输入要插入的数据的位置及其数据.输入格式为(3,5)\n");
    scanf("%d,%d",&n,&x);
    InsList(&list,n,x);
   
}
错误好像在向序列表中输入数据的时候把结束标志0也给保存在内存中了吧?如果是的话,请问能不能退格用空格赋值啊?请各位帮我解惑!!谢谢
6 回复
#2
azzbcc2014-03-25 23:34
用 0 作结束也可行的

错误是 Init 函数,初始化失败,形参。
#3
笔墨痕干2014-03-26 20:35
回复 2楼 azzbcc
按照你的说法改了之后输入那里对了但是插入还是不正确啊!!! 你再帮我看下吧!!谢谢了,另外形参那样应该不会错吧,因为我实参传时没有取地址符号啊!
#4
azzbcc2014-03-26 23:43
所谓形参,,,

你的init函数未对 SeqList 作任何改变
#5
笔墨痕干2014-03-27 07:54
回复 4楼 azzbcc
亲,麻烦你在说清楚一下好吗?真的刚接触数据结构,你说对结构体起不到任何作用你的意思是那样传址不能初始化吗?
#6
azzbcc2014-03-27 12:17
是阿

就和这个效果一样

程序代码:
void foo(int n)
{ n = 1; }
int main(void)
{
  int n = 0;
  fun(n);
  printf("%d\n", n);
  return 0;
}
#7
笔墨痕干2014-03-27 20:07
回复 6楼 azzbcc
哦,我知道了,谢谢你了,程序我也调试出来了
1