我的阵列是:计数在一个数组初始化的元素的数量[更新]
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