变量值自动改变

时间:2019-05-27 19:59:33

标签: c++

输入变量k后,其值将自动更改为5。

#include<iostream>
using namespace std;

int search(int arr[], int target, int size) {
    int l = 0; int mid;
    while(l <= size) {
        mid = l + (size-l) / 2;
        if(arr[mid] == target) 
            return 1;
        if(arr[mid] > target)
            size = mid - 1;
        if(arr[mid] < target)
            l = mid + 1;
    }
    return 0;       
}

int sort(int arr[], int size) {
    int temp; bool swap = false;
    for(int i = 0; i < size; i++) {
        bool swap = false;
        for(int j = 0; j < size - i; j++) {
            if(arr[j] > arr[j + 1]) {
                temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;
                swap = true;
            }
        }

        if(swap == false)
            break;
    }
    return 0;
}

int main() {
    int n, k; 
    int count; 
    int j;
    int arr[n];

    cin >> n;
    cin >> k;
    int value;
    for(int i = 0; i < n; i++) 
        cin >> arr[i];
    sort(arr, n - 1);              
    for(int i = 0; i < n; i++) {
        value=arr[i] + k;
        j = search(arr, value, n - 1);
        if(j == 1)
            count++;         
    }
    cout << count;    
}

我在输入之后立即打印了k的值,它显示了正确的值。但是在主函数内部,当我使用它来计算变量“值”时,其值被视为5。在调用排序函数之前发生了某些事情。

0 个答案:

没有答案