我的陣列是:計數在一個數組初始化的元素的數量[更新]
int array[100];
如果我初始化前n個元素(N < 100)的整數,包括0,其餘的是未初始化的,如何我計算n嗎?
我試圖用以下代碼一般的while循環:
int i = 0;
int count = 0;
while (a[i++])
count++;
然而,與這些碼的問題是,它不計數的值0的元素(它需要0作爲FALSE)。我如何克服這個問題?
UPDATE:下面是這個問題的背景
我有以下代碼:
int a[100];
int i;
for (i = 0; i < 100; i++)
scanf("%d", &a[i]);
如果非要輸入(只是一個例子):
1 0 1 0 1 *
然後數組的前5個元素將是:1 0 1 0 1.其餘部分將被初始化。在這種情況下,如何計算這些初始化元素的數量以獲得5?
沒有標準的方法來執行此操作。追溯初始化元素的數量要比追溯性地計算出來要好得多。 – 2014-10-30 07:43:45
問題是,如果它是非空間的,它是垃圾,它也可能是一個整數。 – 2014-10-30 07:45:28
也許你有一個XY問題。你想實現什麼?你真的談到初始化或簡單的任務嗎?編譯時是否知道初始值的數量?你需要數組的其餘部分,那些未初始化的元素? – 2014-10-30 07:59:22