2
A
回答
1
如果你知道數字的時間提前數(在本例中3),你可以像這樣做:
#include <stdio.h>
int main()
{
const int numDigits = 3;
int answer = 140;
int digits[numDigits];
int i = numDigits - 1;
while (answer > 0)
{
int digit = answer % 10;
answer /= 10;
digits[i] = digit;
printf("digits[%d] = %d\n", i, digits[i]);
i--;
}
return 0;
}
輸出:
digits[2] = 0
digits[1] = 4
digits[0] = 1
0
我不是C程序員,所以我不能給出具體的代碼,但我會嘗試1)整數字符串轉換(谷歌說,嘗試sprintf()),2)運行for循環爲你的整數/字符串的長度和分配給一個數組。我最終會做這樣的事情:
integer_String = convertToString(integer)
for (integer_String.length()) {assign to array}
大概是不錯的包裹起來在返回數組的功能。
編輯:無視哈哈其他答案是更好的方式。
1
一種選擇是計數數字和使用variable length array :
#include <stdio.h>
int main(void){
int ans = 140;
int x = ans;
size_t i, size = 0;
while (x) {
x=x/10;
size++;
}
int arr_answer[size];
for (i = size - 1, x = ans ; x ; x = x/10, i--) {
arr_answer[i] = x % 10;
}
for (i=0 ; i < size ; i++) {
printf("%d ", arr_answer[i]);
}
}
顯然,如果你可以使用固定大小的數組,它是足夠大的,你不需要計算size
,因此避免第一個循環。 但這可能是唯一的一個準確大小的陣列。或者,如果數字的位數可能很大(如果您不需要使用數組),則還可以使用malloc()
來分配一塊內存(並且您還需要以不同方式存儲它們) - 一個int
可以保持有限的數值範圍)。
從C99開始可用的VLA是C11中的可選功能。
相關問題
- 1. 將整數轉換爲數組數組
- 2. C++將整數字符串轉換爲整數數組?
- 3. 將整數數組轉換爲數字
- 4. 將整數轉換爲數組數字
- 5. 將整數轉換爲數組數組的函數C++
- 6. 將字符數組轉換爲整數
- 7. 將字符數組轉換爲整數
- 8. Javascript - 將整數轉換爲數組
- 9. 將整數轉換爲數組
- 10. 將numpy數組值轉換爲整數
- 11. 將字符數組轉換爲整數
- 12. 將EnumSet轉換爲整數數組
- 13. 將字符數組轉換爲整數
- 14. 將C++浮點數轉換爲整數
- 15. 將整數指針轉換爲整數
- 16. 將非整數轉換爲整數python
- 17. 將「整數字符串」轉換爲整數數組
- 18. 如何將整數文本行轉換爲整數數組?
- 19. c#將ascii值的字節數組轉換爲整型數組
- 20. 將2位數字的數組轉換爲整數(C++)
- 21. C將字符命令行參數轉換爲整數數組
- 22. 如何將整數轉換爲C中的數字數組?
- 23. 將整數轉換爲數字數組[C]
- 24. 將整數數組轉換爲char數組,每個整數每3位數
- 25. 將整數數組轉換爲長整型
- 26. 將元組轉換爲整數
- 27. 無法在C++中將整數字符串轉換爲整數
- 28. 將time_t轉換爲整數
- 29. 將bytearray轉換爲整數
- 30. 將BigDecimal轉換爲整數
你知道「答案」中有多少位數嗎? – bejado
你是說你想用所需的輸出生成源代碼:int arr_answer [] = {1,4,0};'?請具體說明。 –