在练习题的时候,一个简单的程序多次运行崩溃,经检查总结以下问题:
1、数组初始化问题
在写程序时,由于习惯问题,在数组初始化时有时会不写元素个数,例如:
这样写虽然程序不会报错,但是在程序运行时是会出错的(程序可能会崩溃,并且找不到原因),这时就是数组越界。有相同情况的小伙伴可以查看一下是否是数组初始化的方式写错了。数组初始化需要随便给数组一个值向内存申请一块空间,正确的初始化数组的方式有以下两种:
如果想通过窗口 给数组灵活赋值,数组初始化需要写成第一种形式
2、给数组赋值问题(有两种方法)
对于初学者来说,习惯用给变量赋值的方式给数组赋值,如下:
法一:
这种赋值方法是对的,但是scanf写起来比较繁琐
可以使用循环方式,避免书写scanf时出错:
法二:(推荐)
3、这里附上自己写的小题目,包含上述的两个问题点,可以参考一下实际运用案例
int main() {
//给数组赋值时必须给定准确的数组元素个数
int arr[10] = { 0 };
int max = 0;
int i = 0;
for ( i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
for ( i = 0; i < 10; i++)
{
if (arr[i] > max)
max = arr[i];
}
printf("%d\n", max);
return 0;
}