| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:数据结构问题!!!
取消只看楼主 加入收藏
zgxxidian
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2009-8-30
结帖率:25%
收藏
 问题点数:0 回复次数:2 
数据结构问题!!!
最近学数据结构。第一次写了个程序可是发现语法错误很多,自己找了半天还是有好多,逻辑上应该没什么问题吧,好像就是一些C的语法点错了,请高手帮忙改改好不?改动的地方用红字标下,谢谢大家!


/*若s是一个采用顺序结构存储的串,编写一个函数,要求从s中删除从第i个字符开始的,长度为j的一个字串*/
#include<stdio.h>
#include<malloc.h>
#define maxsize 1024;


seqstring *DELETE(seqstring *s,int i,int j);


void main()
{
    typedef struct
    {char ch[maxsize];
     int len ;
    }seqstring;
    seqstring *a;    /*顺序串*/

    a->ch[maxsize]={f,g,h,i,j,k,l,v,b,s};
    int b=3,c=3,n=0,len;
    len=10;
    DELETE(a,b,c);
for(n=1;n<=len-c;n++)
{
    printf("%c",a);
    a++;
}

}
seqstring *DELETE(seqstring *s,int i,int j)
{
    int m;
    if(i+j>len)        /*给出的i,j值越界*/
        printf("error");
    else
    {
        for(k=0;k<len-(i+j)+1;k++)
            s->ch[i+k]=s->ch[i+j+k];/*从第i+j位开始,后面的整体前移j位*/
        for(k=0;k<j;k++)
            s->ch[len-j+1]='0';    /*结束标志'/0'前移j位*/
    }
    return(s);
}



 

搜索更多相关主题的帖子: 数据结构 
2010-04-18 23:12
zgxxidian
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2009-8-30
收藏
得分:0 
回复 2楼 hanzhenddd
非常感谢你,我会好好研究研究的。确实是编程的基本功太差了
2010-04-19 12:26
zgxxidian
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2009-8-30
收藏
得分:0 
回复 2楼 hanzhenddd
  是不是在main函数中定义一个顺序串的结构体serstring,其中含有char型的数组ch[maxsize],用来存放字符,还有数组的长度len。然后用一个指向这个结构体的指针a。给ch赋值,并给出b,c值,表示删除第b个字符开始连续c个字符。
  此外,定义一个删除ch中从第i个元素开始的j个元素的函数DELETE,它的返回值应该是seqstring型的指针,所以函数体写成seqstring *DELETE(serstring *s,int i,int j)。这样当调用DELETE函数时,a的地址值传给s,b传给i,c传给j。然后在s->ch中进行操作,结束后将指针s返回,这样就可以得到DELETE后的ch了。。大概是不是这个思想啊?就是注意实参与形参用的符号不能一样是吧?
  谢谢了,希望大家帮帮忙,这些基本的问题解决了,就好办了
2010-04-19 12:47
快速回复:数据结构问题!!!
数据加载中...
 
   



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

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