2016-09-27 57 views
-1

我需要将数组传递给一个函数。在函数中,动态分配一个新的整数数组。按照相反的顺序将原始数组中的值分配给新数组,以便原始数组中的第一个条目成为新数组中的第五个条目,原始数组中的第二个条目成为新数组中的第四个条目, 等等。在函数中显示新数组的内容。不要从函数返回新的数组。不要更改原始数组的内容。在分配和显示新数组的内容时,使用指向数组的指针,即使用解引用。动态分配的数组将被删除。用动态分配一个新的整数数组奋斗

下面是我现在所做的一些框架工作,但我很难过,不知道如何继续。

第一个显示数组,以便他们在数组中,但我正在努力如何将它传递给另一个函数,然后以相反的顺序显示。我认为我一度很接近,但我越来越糊涂,我认为我实际上变得更糟,并且离我想要完成的更远。

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

void dispArr(int *, int); 
void dispArrRev(int *, int); 

void main() 
{ 

    int arrA[5] = { 100, 200, 300, 400, 500 }; 

    dispArr(arrA, 5); 
    dispArrRev(arrA, 5); 


    system("pause"); 
    return; 
} 

void dispArr(int *val, int size) 
{ 
    for (int x = 0; x < size; x++) 
    { 
     cout << x << " = " << *(val + x) << endl; 
    } 
    cout << endl; 
    return; 
} 

void dispArrRev(int *val, int size) //call by pointer 
{ 
    //Stare at white space until light bulb appears :S :| 
} 
+0

你可以改变'的for(int x = 0; X <大小; X ++)'通过反向数组去order –

+0

@appleapple the s提示似乎包括在函数 –

+0

内部创建一个动态数组“我需要将数组传递给函数”。 - 目前为止,函数需要'int * val'。 “在函数中,动态分配一个新的整数数组。” - 好的,轮到你了。编写代码来动态分配一个整数数组。 –

回答

0

只是一个建议,你可以保存它,因为它是,但以相反的顺序来表示的,如:

void dispArrRev(int *val, int size) 
{ 
    for (int x = size-1; x >0; x--) 
    { 
     cout << x << " = " << *(val + x) << endl; 
    } 
    cout << endl; 
    return; 
} 

如果必须分配和释放数组里面的功能,那么你的代码应(请注意,我并没有添加代码,以检查是否new_array已分配):

void dispArrRev(int *val, int size) 
{ 
    int *new_array=new int[size]; 
    for (int x = size-1; x >0; x--) 
    { 
     new_array[size-x-1]=*(val + x); 
    } 
    dispArr(new_array,size); 
    delete [] new_array; 
    return; 
} 
+0

啊,这是有道理的。我一直在努力1以相反的顺序定义动态数组和2显示。当我进行for循环之前,我一直得到一堆负面奇怪数字的无限循环。我在做 对(INT X = 0; X <大小; x--) \t { \t \t COUT << X << “=” << *(VAL + X)<< ENDL; \t} \t cout << endl; 道歉格式努力甚至发表评论显然:S – Sublim3