arduino 冒泡算法-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 974|回复: 7

[未解决] arduino 冒泡算法

[复制链接]
发表于 2021-12-3 12:56 | 显示全部楼层 |阅读模式
本帖最后由 lzs303 于 2021-12-3 12:58 编辑

看到冒泡算法自学了一下,程序如下,但是程序的结果中第一次运算就吧最大的数字41变成了0,死活弄不清楚哪里写错了,请高手指点一下,谢谢。
int  zu[9]={2,5,3,9,41,-1,7,10,18};
  int temp;
  void setup() {
  Serial.begin(9600);
  }
  void loop() {
  for(int j=0;j<8;j++){
  for(int i=0;i<9;i++){
  if(zu>zu[i+1]){
    temp = zu;
    zu= zu[i+1];
    zu[i+1]=temp;
  }
  Serial.print(zu
);
  Serial.print(" ");
  }
  Serial.println(" ");
  }
  for(;;){
  }
  }

结果如下


图片显示不了,结果请看这里。

2 3 5 9 -1 7 10 18 0  
2 3 5 -1 7 9 10 0 18  
2 3 -1 5 7 9 0 10 18  
2 -1 3 5 7 0 9 10 18  
-1 2 3 5 0 7 9 10 18  
-1 2 3 0 5 7 9 10 18  
-1 2 0 3 5 7 9 10 18  
-1 0 2 3 5 7 9 10 18  

发表于 2021-12-3 15:46 | 显示全部楼层
你最好在电脑上用 VC 之类的验证算法,这样比较容易调试,可以直接看变量值

然后你代码里面用了 zu 这个是明显错误

  if(zu>zu[i+1]){
    temp = zu;
    zu= zu[i+1];
    zu[i+1]=temp;
  }
 楼主| 发表于 2021-12-3 18:26 | 显示全部楼层
本帖最后由 lzs303 于 2021-12-7 10:51 编辑

代码粘贴不正确,发个图片。麻烦高手们来指导一下,谢谢。
1.jpg
 楼主| 发表于 2021-12-3 18:38 | 显示全部楼层
lzs303 发表于 2021-12-3 18:26
代码没有粘贴清楚,我在发一次。麻烦再看看,谢谢。
  int zu[9]={2,5,3,9,41,-1,7,10,18};  int temp;
  ...

zu 后面有个  粘贴后死活显示不出来,不好意思。
 楼主| 发表于 2021-12-7 10:52 | 显示全部楼层
再顶一下,防止下沉。请高手指点12.
发表于 2021-12-7 11:35 | 显示全部楼层
For (int i=0; i<9;i++);  i=8时,下一行 zu[i+1]数组越界了。把41交换成了越界的值。
 楼主| 发表于 2021-12-28 12:26 | 显示全部楼层
  1. int zu[9] = {100,9,8,7,6,5,4,3,-1};
  2. int temp;
  3. void setup() {
  4.   Serial.begin(9600);
  5. }
  6. void loop() {
  7.   for (int j = 0; j < 9; j++) {
  8.     for (int i = 0; i < 8; i++) {
  9.       if (zu[i] > zu[i + 1]) {
  10.         temp = zu[i];
  11.         zu[i] = zu[i + 1];
  12.         zu[i + 1] = temp;
  13.       }
  14.     }
  15.     for (int i=0;i<9;i++){
  16.     Serial.print(zu[i]);
  17.     Serial.print(" ");
  18.     }
  19.      Serial.println(" ");
  20.   }

  21.   for (;;) {
  22.   }
  23. }
复制代码


已解决,可以使用了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 17:52 , Processed in 0.082560 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表