簡體   English   中英

無法使用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

但是當它運行時,只是空白,什么也沒打印,請幫助我解決我的問題

您聲明了一個由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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM