break和输出调换顺序后结果不同?
  • 板块学术版
  • 楼主ww4445
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/5/25 13:17
  • 上次更新2023/11/4 22:45:21
查看原帖
break和输出调换顺序后结果不同?
406728
ww4445楼主2021/5/25 13:17

代码精简了一下,没有原题,目标是找出满足a[i]+b[j]=x的数对[i,j],正确结果应为[1,1],不知为何两份代码输出结果不同 o(TヘTo)

#include <iostream>
using namespace std;

int a[10] = {1, 2, 4, 7}, b[10] = {3, 4, 6, 8, 9} ,n = 4, m = 5, x = 6;
int i = 0, j = 0;

int main() {
    for(int i = 0; i < n; i ++) {
        while(a[i] + b[j] > x && j > 0) {
            j --;
        }
        while(a[i] + b[j] < x && j < m - 1) {
            j ++;
        }
        if(a[i] + b[j] == x) {
            cout << i << " " << j;
            break;
        }
    }
}
#include <iostream>
using namespace std;

int a[10] = {1, 2, 4, 7}, b[10] = {3, 4, 6, 8, 9} ,n = 4, m = 5, x = 6;
int i = 0, j = 0;

int main() {
    for(int i = 0; i < n; i ++) {
        while(a[i] + b[j] > x && j > 0) {
            j --;
        }
        while(a[i] + b[j] < x && j < m - 1) {
            j ++;
        }
        if(a[i] + b[j] == x) break;
    }
    cout << i << ' ' << j;
}
2021/5/25 13:17
加载中...