2012-11-18 59 views
-4

這可能是一個非常簡單的問題,但我需要將數組[0]和數組[1]中的兩個int值複製到一個整數中。「複製」數組的元素按順序變成「int」? C

作爲實例如果數組[0] = 1和數組[1] = 6,我需要整數等於「16」。 陣列的任何元素的範圍從0到9.

我有什麼機會? 非常感謝!

+3

什麼是「數組[0]」是21而「數組[1]」是416?確保你瞭解地點價值體系。 –

回答

2

數組[0]總是表示10的位置,而數組[1]總是表示1的位置?數組[0]或數組[1]的值是否大於9或小於0?是否會有數組[2]或數組[3]來表示3位數或4位數?

如果對上述問題的回答是「是」,「否」和「否」,那答案是不是簡單的算術?

int result = (array[0] * 10) + array[1]; 

如果數據未預先進行範圍檢查,那麼您需要添加該步驟。即使數據是經過預先範圍檢查的,您仍然應該考慮添加該步驟以進一步確保。

'10'在上面的例子中也是一個幻數。不硬編碼10可能是明智的做法,但是可以根據數組的大小進行編碼。考慮有一個數組[2]的情況。 。 。陣列[N]。然後怎樣呢?

+0

我說過這可能是一個簡單的問題:P這正是我所需要的。非常感謝!!只要網站讓我接受答案,我會的。 – LeanDroid

+0

如果你在數組[21]中有21個數組,並且數組[1]是416,那麼你將有626個。不應該是21416嗎? – dreamcrash

+1

當然,這取決於輸入的指定範圍。正如所寫的,規範顯然是模棱兩可的,需要收緊。也許,當array [0]是21時,你應該把它們相乘!難道不是8736? –

1

一個簡單的方法來做到這一點,就是將你的整數轉換爲字符串,然後再接觸,然後再次轉換,這次從字符串轉換爲整型。

char s1[30]; // String that will hold the first integer 
char s2[15]; // String that will hold the second integer 

int intResult; 

首先int轉換成字符串:

sprintf(s1, "%d", array[0]); 
sprintf(s2, "%d", array[1]); 

比加入2串在一起:

s1 = strcat(s1,s2); 

然後轉換成字符串結果爲整數。 intResult = atoi(s1);

+0

謝謝。好想法。 – LeanDroid

+0

Np,歡迎你。 – dreamcrash