[英]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
但是當它運行時,只是空白,什么也沒打印,請幫助我解決我的問題
您聲明了一個由10個元素組成的數組。
int a[10];
在這種情況下,索引的有效范圍是[0, 9]
,即如果您有N
元素組成的數組,則該數組的索引的有效范圍是[0, N-1]
。
因此,您需要按以下方式更改porgram中的循環
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" );
輸出緩沖區尚未刷新到控制台/終端。 在printf
循環后添加此行
printf("\n");
另外,你的數組應該是
int a[11];
因此索引保持在范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.