从数组中简单的Printf循环

时间:2014-09-09 03:47:03

标签: c cygwin

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int
main(int argc,char **argv)
{
    int array[10];

    int count = sizeof(array) / sizeof(int);

    array[0] = 1;

    int index = 1;
    while (index < count)
    {
        array[index] = array[index - 1] * 2;
        index = index + 1;
    }

    while (index < count)
    { 
        printf("%d\n",array[index]);
        index = index + 1;
    }
    return 0;
}

我正在尝试循环printf语句以节省打字时间,所以每次打印出新结果时我都不必输入整个内容。当我如上所述运行程序时,没有打印出来。

我的问题是:我如何循环printf语句,所以我不必编写

printf("%d\n", array[0]); 

等每个新的printf命令,如果我的目标是打印出数组的所有10个值?

编辑:对于将来的查看者,在打印语句之前将索引重新定义为0。

2 个答案:

答案 0 :(得分:1)

while (index < count)时,第一个循环index == 10结束。

因此,从未输入下一个循环while (index < count),因为条件最初为假。

编写两个循环的更简洁的方法是:

for ( int index = 1; index < count; ++index )
{
    array[index] = array[index - 1] * 2;
}

for ( int index = 0; index < count; ++index )
{
    printf("%d\n", array[index]);
}

通过将计数器变量作为这样的循环来限定,可以防止程序中出现的错误。

答案 1 :(得分:-2)

你可以在单循环中完成,有些东西如下。

while (index < count)
{
    array[index] = array[index - 1] * 2;
    printf("%d\n",array[index]);
    index = index + 1;
}