| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 372 人关注过本帖
标题:c语言 数据结构
只看楼主 加入收藏
疯子若彤
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-2-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
c语言 数据结构
int sxbsc(int i, int v[], int *p)
{   
  int j,n;     n=*p;
    if((i<1) || (i>n))     
  return (0);   
  for(j=i;j<n;j++)      
   v[j-1]=v[j];      
  *p=--n;      
 return (1);
  }
这是我们的数据结构课上用C语言编写的一个程序的一部分,是删除一个元素的,我不太懂,大家帮我看看,其中的n.p的意思,对程序做一简单的介绍!
                     谢谢大家啦!
搜索更多相关主题的帖子: return 结构 c语言 
2012-10-09 22:18
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:5 
int sxbsc(int i, int v[], int *p)
{   
  int j,n;     n=*p;
    if((i<1) || (i>n))     /*如果是不在删除在范围之内就返回0
  return (0);                     */
  for(j=i;j<n;j++)     // 在正常范围内删除时, 从要删除的i元素开始向后扫描,
   v[j-1]=v[j];      //并把此时扫描的每个元素下标减1,此句和for循环是一个整体。
  *p=--n;       //完成上述循环后把长度减1
return (1);
  }

www.qunxingw.wang
2012-10-09 23:42
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:3 
呵呵 我写完你楼上的发了  补充下:v[j-1]=v[j];是数组的后一个值赋给前一个,会把第一次的v[j-1]覆盖掉      


[ 本帖最后由 遗矢的老人 于 2012-10-9 23:53 编辑 ]
2012-10-09 23:47
Eumenides_me
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:151
注 册:2012-9-26
收藏
得分:10 
程序代码:
int sxbsc(int i, int v[], int *p)
{   
    int j,n;
      n=*p;
      //根据你的程序,你的j用来进行删除操作的,n用来接收传进来的数组长度*p
     
      if((i<1) || (i>n))
          return (0);
      //上一个if语句用于判断需要删除那个元素的下标是否越界,若越界,返回值0
        
      for(j=i;j<n;j++)
           v[j-1]=v[j];
       //当下标未越界,用第j-1个元素覆盖掉需要删除的第j个元素,循环覆盖
          
      *p=--n;
      //完成删除操作后,使数组长度自减1
     
    return (1);
}
因为数组是地址传递,所以可以完成覆盖操作。
不过不知道你的程序中,表示数组长度的变量是否有必要定义成指针类型?
在你这段代码中,其实不必要定义那个指针变量*p,你只需要在主函数中对返回值是0或1进行判断的时候,在if(x == 1)中多加一句代码就行了。
if(x == 1)
{
    length--;         //x表示你的返回值,length表示数组长度。
}
2012-10-10 00:33
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:2 
补充一下楼上几位的,函数返回0表示没有删除元素,返回1表示删除了一个元素!
2012-10-10 08:33
快速回复:c语言 数据结构
数据加载中...
 
   



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

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