当前位置: 首页 > 知识库问答 >
问题:

一个C++程序,从用户那里获取数组的大小和组件,并返回反向数组

谈萧迟
2023-03-14

我编写了这段代码,它应该从用户那里获取数组的大小和组件,然后返回数组的反向,但无法识别和修复错误。我最好的猜测是while循环在制造麻烦,但我不确定。

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


// function to reverse given array
void reverseArray(int arr[], int start, int end){

while (start<=end){
    int temp = arr[start];
    arr[start] = arr[end];
    arr[end] = temp;
    start++;
    end--;
       
}

}


// function to print given array
void printArray(int arr[], int size){
   for (int i = 0; i < size; i++)
   cout << arr[i] << " ";
}


int main() {
    int n;
    cin >> n;
    int mainarray[] = {n} ; 
    n = sizeof(mainarray);

    for (int i=0; i<n; i++) {
        cin >> mainarray[i];
    }

reverseArray(mainarray , 0, n-1);
printArray(mainarray ,n);

    return 0;
}

共有1个答案

尚恩
2023-03-14
int mainarray[] = {n} ; 
n = sizeof(mainarray);

这是一种用n元素分配数组的错误方法。这是用一个元素分配数组,然后用数组占用的字节数覆盖n

您应该为分配执行以下操作,而不是这样:

int* mainarray = new int[n];

然后,在返回0;之前,您应该通过执行以下操作来清理此内容:

delete[] mainarray;
 类似资料:
  • 我正在编写一个简单的函数,它返回数组中最大的整数。我遇到的问题是在数组中找到元素的数量。 下面是函数头: 我如何获得数组'list'中的整数数。 我试过以下几种方法: 任何帮助都将不胜感激!

  • 代码: 为什么第二个打印5而不是20?

  • 本文向大家介绍使用JavaScript返回整数的反向数组,包括了使用JavaScript返回整数的反向数组的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个数字并返回一个元素数组,其中包含从n到1的所有自然数。 输入 输出 示例 以下是代码- 输出结果

  • C++ 数组 C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。 如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 现在,让我们来看下面的函数,它会生成 10 个随机数,并

  • 本文向大家介绍Java程序以给定大小的组反转数组,包括了Java程序以给定大小的组反转数组的使用技巧和注意事项,需要的朋友参考一下 通过反转所需大小的子数组,可以按给定大小的组反转数组。一个例子如下。 演示此过程的程序如下。 示例 输出结果 现在让我们了解上面的程序。 首先打印原始数组。然后,使用for循环将给定大小(即4)的组反转为数组。演示此操作的代码段如下所示。 然后显示修改后的数组。演示此

  • 编写一个程序,返回一个新数组,该数组包含所有大于数组中第一个值的值。如果数组中没有大于第一个值的值,则返回空数组。如果数组为空,则返回一个空数组。 我这样解决这个问题: 谢谢