#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。
答案 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;
}