标题:一变量在循环中发上变化
只看楼主
鹿言弓
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: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册: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: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-390067-1-1.html




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

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