无法使用for循环在C中打印数组
can't print array in C using for loop
所以我有这个代码
#include <stdio.h>
main()
{
int a[10];
int i= 0;
for (i=0; i<11; ++i){
a[i] = 0;
}
for(i=0; i<11; ++i){
printf("%d", a[i]);
}
}
我读过丹尼斯·里奇 (Dennis Ritchie) 的 C 书,我希望它应该像这样打印出来
0 0 0 0 0 0 0 0 0 0
但是当它运行时,只是空白,没有打印任何东西
请帮我解决我的问题
输出缓冲区尚未刷新到 console/terminal。在 printf
循环
之后添加这一行
printf("\n");
另外,你的数组应该是
int a[11];
以便索引保持在范围内。
您声明了一个包含 10 个元素的数组。
int a[10];
在这种情况下,索引的有效范围是 [0, 9]
,也就是说,如果您有一个 N
元素的数组,那么该数组的有效索引范围是 [0, N-1]
。
因此您需要按以下方式更改程序中的循环
for (i=0; i< 10; ++i)
最好定义一个清单常量并使用它来代替幻数 10,例如
#define N 10
//...
int a[N];
for (i=0; i < N; ++i)
或至少在循环表达式中使用
for (i=0; i < sizeof( a ) / sizeof( *a ); ++i)
如果你像
这样声明数组,你可以获得相同的效果
int a[10] = { 0 };
并在最后一个循环语句后插入
puts( "" );
或
printf( "\n" );
所以我有这个代码
#include <stdio.h>
main()
{
int a[10];
int i= 0;
for (i=0; i<11; ++i){
a[i] = 0;
}
for(i=0; i<11; ++i){
printf("%d", a[i]);
}
}
我读过丹尼斯·里奇 (Dennis Ritchie) 的 C 书,我希望它应该像这样打印出来
0 0 0 0 0 0 0 0 0 0
但是当它运行时,只是空白,没有打印任何东西 请帮我解决我的问题
输出缓冲区尚未刷新到 console/terminal。在 printf
循环
printf("\n");
另外,你的数组应该是
int a[11];
以便索引保持在范围内。
您声明了一个包含 10 个元素的数组。
int a[10];
在这种情况下,索引的有效范围是 [0, 9]
,也就是说,如果您有一个 N
元素的数组,那么该数组的有效索引范围是 [0, N-1]
。
因此您需要按以下方式更改程序中的循环
for (i=0; i< 10; ++i)
最好定义一个清单常量并使用它来代替幻数 10,例如
#define N 10
//...
int a[N];
for (i=0; i < N; ++i)
或至少在循环表达式中使用
for (i=0; i < sizeof( a ) / sizeof( *a ); ++i)
如果你像
这样声明数组,你可以获得相同的效果int a[10] = { 0 };
并在最后一个循环语句后插入
puts( "" );
或
printf( "\n" );