| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 439 人关注过本帖
标题:求助。。。。。。。哪里错了,输出的数据有问题
只看楼主 加入收藏
ymyan91
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-25
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
求助。。。。。。。哪里错了,输出的数据有问题

'把3个数组的值复制到第四个数组
For i = 1 To 490
   If i <= 140 Then
   c4(i) = c1(i)
   ElseIf 141 <= i And i <= 290 Then
   c4(i) = c2(i - 140)
   Else: c4(i) = c3(i - 290)
   End If
Next i

'对第四个数组进行排序
For i = 1 To 489
xiabiao(i) = i
Next i
For i = 1 To 489
   For j = i + 1 To 490
   If c4(i) > c4(j) Then
   b = c4(i): c4(i) = c4(j): c4(j) = b
   temp1 = xiabiao(i)
   xiabiao(i) = xiabiao(j)
   xiabiao(j) = temp1
   End If
   Next j
Next i


调试的时候c4(i)=c1(i)的值左右不相等
搜索更多相关主题的帖子: 490 
2013-04-26 01:08
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:10 
现在看懂你输出下标的意思了。c4(i)和c1(i)是在什么时候调试不等的?如果是排序后不等很正常,小的数都冒泡到前面来了。程序应该没什么问题的。
如果你是想用数组下标来冒泡,则算法有问题,应该不交换数组c4的值,只需交换下标,代码如下:
for i=1 to 490
  xiabiao(i)=i
next
for i=1 to 489
  for j=i+1 to 490
    if c4(xiabiao(i))>c4(xiabiao(j)) then
      '交换下标,原数组值可以保持不动
      temp1=xiabiao(i)
      xiabiao(i)=xiabiao(j)
      xiabiao(j)=temp1
    endif
  next
next
2013-04-26 07:29
ymyan91
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-25
收藏
得分:0 
回复 2楼 lowxiong
一开始就不等了。
2013-04-26 07:44
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
验证你的代码了,没有排序前,数组c1和c4的前140个数完全一样,不是你所说的一开始就不同。排序后c4中的值是从小到大排列的,其前140个数就和c1不一样了,参见我的调试图如下:
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-04-26 13:31
快速回复:求助。。。。。。。哪里错了,输出的数据有问题
数据加载中...
 
   



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

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