2011-12-12 61 views
-1

我需要編寫一個程序,這將要求用戶輸入一個數字,他們希望有多少個整數進入..所以輸出看起來像動態內存分配和動態數組

INTS的輸入數字(必須大於1)

,他們會輸入2之間的數 - 無限遠(如果他們真的想要去那麼遠)

在這一點上,我會SCANF該號碼,將其設置爲可變

現在用這個數字,我想運行一個for循環問他們開始進入他們的INTS

for (count = 0; count < numofInts; count++) 
{ 
    printf(" Enter an integer: "); 
    scanf("%d", &Number); 
} 

有問題IM是,我需要確保它記錄每次他們進入數字,所以我需要存儲到一個數組的值,但數量數組的元素必須是動態的,以便它可以根據numofInts進行更改,我應該使用Malloc()創建一個動態內存分配空間,並且我明白它會創建一個具有內存空間的變量我將malloc設置爲,但我不知道如何將一個變量存儲到該空間,然後在我需要時將它們回調。

程序的最終結果應該是123456789這樣的數字,然後循環存儲整數的數字作爲「最大」int,然後吐出哪個int是最大的,就像x = 1234567890一樣, x%10,x = 0,最大= x,x/10,x%10,x = 9,如果x>最大,最大= x,循環直到循環遍歷整個數字,並將該數字存儲在最終。我有這個部分,但因爲我必須採取一系列的數字,並運行這些循環的所有這些數字,我需要能夠存儲和調用這些值,並將它們放置在循環中,以便能夠存儲最大這些數字的數字

任何幫助這個問題將不勝感激,我只是一直無法弄清楚如何使用malloc或創建一個動態數組和大部分的教程在線閱讀或從YouTube觀看是關於C++和我需要不僅僅是C做到這一點...

http://pastebin.com/PZyvEQ4J

我至今

+1

[tl; dr](http://en.wiktionary.org/wiki/TL;DR)。你能大幅縮短你的散文到一個簡單的可識別的問題嗎? –

+0

你一年四季都做了什麼!?!!?!??你嚇到我了! –

+2

如果你想處理的數字與'無窮大'一樣大,那麼你就會陷入困境。 –

回答

2

你讀numInts後,您分配數組,像這樣:

int* arr = malloc(numInts*sizeof(int)); 

現在你填充陣列與你現有的功能和分配讀取到數組中的值。

我不會給你一個完整的解決方案,因爲這是家庭作業,也不會幫助你,但你訪問i「個數組元素與[]操作:

arr[i]; 
+0

這正是我所需要的,非常感謝你,我知道它似乎不是很多,但我問我的老師如何將它做成一個數組,他刷了這個問題,只是有時候一個人需要明顯的陳述... – user1070226

+0

@ user1070226很高興幫助:) –

0

瞭解更多關於指針和calloc