2016-09-27 56 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