c++ 交换数组中的备用项

1hdlvixo  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(135)

你已经得到了一个大小为N的数组/列表(ARR)。你需要交换数组/列表中的每一对交替元素。你不需要打印或返回任何东西,只需要在输入数组本身中进行更改。

#include <iostream>;
using namespace std;

void printArr(int arr[], int n)
{
    for (int i = 0; i < n; i++)
        cout << arr[i]<<i;
}

void UpdateArr(int arr[], int n)
{

   int i = 0, j = n - 1;

    
    while (i < j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
        i += 2;
        j -= 2;
    }
  cout<<' printArr(arr[], n)';
}

int main()
{
    int t;
    cin>> t;

     int n;
 cin>> n;
 int input[100];
 for(int i=0; i<n; i++) {
    cin >>input[i];
 }
    int arr[100] ;
    n = sizeof(arr) / sizeof(arr[0]);

    UpdateArr(arr, n);

    return 0;
}
wgx48brx

wgx48brx1#

我不知道你到底希望输出是什么(请编辑它,并显示预期的输出),但我认为这是你需要做的

#include <iostream>
#include <iomanip>
using namespace std;

void UpdateArray(int Arr[], size_t n) {
    for (size_t i = 0; i < n / 2; i++) {
        int Holder = Arr[i];
        Arr[i] = Arr[~i + n];
        Arr[~i + n] = Holder; } }

int main() {
    int Arr[7] = { 1,2,3,4,5,6,7 };
    UpdateArray(Arr, 7);
    for (int i = 0; i < 7; i++) {
        std::cout << Arr[i] << "\n"; }
    return 0; }

size_t就像一个整型,但是它不能取负数,但是它可以取更大的正数,你可以用整型来代替它,它应该不会有什么区别.
所以我们循环遍历数组的一半,用最后一个元素替换第一个元素,[~i + n]将值翻转到另一边,因此类似于数组大小为20的index 4将变为15

相关问题