数组的声明是bulbState [101]。所以它是一个由101个元素组成的数组。这是给出此错误的代码部分。 在for循环之前,打印数组的第100个元素,并在for循环之后“After this”字符串不打印。
void printBulbState()
{
int i;
printf("100th %d", bulbState[100]);
for ( i = 1; i < 101; i++) {
printf("\nbulbState[%d] = %d", i, bulbState[i]);
}
printf("After for");
}
答案 0 :(得分:0)
我添加了一个main()来驱动printBulbState()函数以及bulbState数组的声明和初始化。
我修改了对printf()的最后一次调用
我认为,问题的根源是操作系统对缓冲区的缓冲。 落后&#39; \ n&#39;在格式字符串或调用fflush(stdout) 导致缓冲区被刷新
这是完美无缺的代码
#include <stdio.h>
void printBulbState( void );
int bulbState[101];
int main( void )
{
for(int i = 0; i< 101; i++ ) bulbState[i] = i;
printBulbState();
return 0;
}
void printBulbState()
{
int i;
printf("100th %d", bulbState[100]);
for ( i = 1; i < 101; i++) {
printf("\nbulbState[%d] = %d", i, bulbState[i]);
}
printf("\nAfter for\n"); // notice format string change
}