| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:一变量在循环中发上变化
只看楼主 加入收藏
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:15 
一变量在循环中发上变化
               
                   if(L.r[low].money>n.money){
                              for(j=L.length;j>=low;--j){
                               printf("2*%d*\n",L.length);//这儿是我进行检查的,本来L.length自加成9,在第一次时很正常,但在第二次,就突然变成-2         
                                      L.r[j+1]=L.r[j];
                                       L.r[low]=n;
                                           if(L.length<10)                                                                             
                                         L.length++;
                                         return 1;               
                                       }

此部分偏偏在L.length=9时出错,它是从0开始自加的,在1,2,3等时,都是正常的。
搜索更多相关主题的帖子: 加成 
2012-12-07 19:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
全局检测吧  部分代码能看出来啥

DO IT YOURSELF !
2012-12-07 19:49
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
收藏
得分:0 
回复 2楼 wp231957
我全部输出了的,都没问题,L.length都没问题,就是那点在第二次中,突然发生了变化,变成了-2.
2012-12-07 20:15
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
收藏
得分:0 
也不知道能发图片不?我发个我程序运行的截图。
不知道你们懂我意思不?我也不知道怎么解释啦。
求指教,又没对它进行赋值,它为啥就变了呀。。。
2012-12-07 20:21
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
能发图片

一般循环变量被改变  还是有代码更改了它

DO IT YOURSELF !
2012-12-07 20:22
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
收藏
得分:0 
回复 5楼 wp231957
捕获.zip (20.54 KB)

程序截取的部分,这个功能其实是排序而已,你要源代码吗?我写的可能有点复杂老。谢谢啦。
2012-12-07 21:01
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:17 
程序代码:
if(L.r[low].money>n.money){
                              for(j=L.length;j>=low;--j){
                               printf("2*%d*\n",L.length);//这儿是我进行检查的,本来L.length自加成9,在第一次时很正常,但在第二次,就突然变成-2        
                                      L.r[j+1]=L.r[j];
                                       L.r[low]=n;
                                       if(L.length<10)                                                                            
                                         L.length++;
                                         return 1;          //楼主我想问一下,在创建函数中这里就直接返回了,应该不会有第二次循环了吧?    
                                       } 
                                 //这里好像少一个中括号,可能是你没复印过来吧...


I have not failed completely
2012-12-07 21:10
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:1 
回复 楼主 鹿言弓
printf里2*%d*,这一部分好像不对吧     
为什么不单独在外面进行呢   这样才能对呀    还有最后的*多余了吧
2012-12-07 21:27
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
收藏
得分:0 
回复 7楼 神龙赖了
  //楼主我想问一下,在创建函数中这里就直接返回了,应该不会有第二次循环了吧?   

没太懂,你说的意思。返回后,始终是会再次调用函数啥。
2012-12-07 22:04
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
收藏
得分:0 
回复 8楼 zhou31146001
那只是个输出而已,就是个检查作用的语句。
2012-12-07 22:05
快速回复:一变量在循环中发上变化
数据加载中...
 
   



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

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