我正在参加免费的CS50在线课程。在其中一个视频教程中,老师提到了用100个整数填充数组的能力,这是一个很好的做法。我现在正试图做那件事,我很难搞清楚。
注意:我只看过包括scanf函数和指针在内的答案。这是解决它的唯一方法,还是可以在没有scanf和指针的情况下解决?
这几乎是我能得到的最接近......
#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <stdlib.h>
int main(void)
{
int fill_array[100];
for(int i = 0; i <= 100; i++)
{
fill_array[99] = i;
printf("%i", fill_array[i]);
}
}
打印出大量随机数并出现此错误:
fillingarray.c:14:18: runtime error: index 100 out of bounds for type 'int [100]'
665999424
答案 0 :(得分:2)
应该是:
for(int i = 0; i < 100; i++)
for循环中还有一个错误,要填充数组,您应该:
fill_array[i] = i;
代码看起来应该是
int fill_array[100];
for(int i = 0; i < 100; i++)
{
fill_array[i] = i;
printf("%i", fill_array[i]);
}
答案 1 :(得分:1)
一个
int fill_array[100];
的索引为0-99。 及时停止for循环。
for(int i = 0; i < 100; i++)
此外,您可能希望填写不同于99的索引。