永远Forever 发表于 2023-9-15 11:45:34

求原数组的逆置放

#include <iostream>
using namespace std;

int main()
{
    int a = {12345};
    int b;
    int n=5;

    for (int i = 0; i < n; i++) {
      b = a;
    }
    for(int i=0;i<n;i++){
      a = b;
    }
    cout << a << endl;
    return 0;
}


此段代码输出的结果还是原来的12345,求大佬看下哪里出了问题

isdkz 发表于 2023-9-15 11:45:44

这段代码的问题在于初始化数组 a 时,只给了第一个元素赋值为 12345,其他元素没有赋值,会被默认初始化为 0。因此在逆置时,b 数组中的前四个元素都被赋值为 0,最后输出 a 时还是输出了原来的 12345。要解决这个问题,可以给数组 a 中的每个元素都赋值,或者使用其他方法来逆置数组。

以下是修改后的代码:

#include <iostream>
using namespace std;

int main()
{
    int a = {1, 2, 3, 4, 5};
    int b;
    int n = 5;

    for (int i = 0; i < n; i++) {
      b[ i] = a;
    }
    for (int i = 0; i < n; i++) {
      a[ i] = b[ i];
    }
    cout << a << endl;
    return 0;
}


输出结果为 1,表示数组逆置成功。
页: [1]
查看完整版本: 求原数组的逆置放