Segmentation fault 这是什么错误??
这个求数组里最大、最小值的程序为什么会报这个错???百度可能的原因:
定义了指针以后记得初始化,在使用的时候记得判断是否为NULL; --没指针
在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等; --已经初始化了,都是12个,都存在
在变量处理的时候变量的格式控制是否合理等;
查了半天好像没问题呀
include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
float PM={
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
{59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
{34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
};
int i,j;
float max=0, min=31.3;
for(i=0;i<3;i++){
for(j=0;i<12;j++){
if(PM>max){
max = PM;
}
if(PM != 0 && PM<min){
min = PM;
}
}
} //求PM中的最大,最小值
printf("最大值%f,最小值%f",max,min);
return 0;
}
for(j=0;i<12;j++)
改成for(j=0;j<12;j++) Croper 发表于 2019-3-26 20:38
改成
我哭了,原来真的数组越界了。。。
页:
[1]