鱼C论坛

 找回密码
 立即注册
查看: 2308|回复: 2

[已解决]Segmentation fault 这是什么错误??

[复制链接]
发表于 2019-3-26 20:34:54 | 显示全部楼层 |阅读模式
5鱼币
这个求数组里最大、最小值的程序为什么会报这个错???

百度可能的原因:
定义了指针以后记得初始化,在使用的时候记得判断是否为NULL;       --没指针
在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等;   --已经初始化了,都是12个,都存在
在变量处理的时候变量的格式控制是否合理等;     

查了半天好像没问题呀

  1. include<stdio.h>
  2. #include<math.h>
  3. #include<string.h>

  4. int main(){
  5.         float PM[3][12]={
  6.         {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 31.3, 35.5, 58.7, 49.6, 55.5},
  7.         {59.8, 54.9, 33.1, 38.2, 26.6, 20.5, 27.8, 38.5, 41.5, 44.7, 38.1, 41.5},
  8.         {34.9, 36.4, 47.5, 37.9, 30.6, 23.4, 26.6, 34.3, 0.0, 0.0, 0.0, 0.0}
  9.         };

  10.         int i,j;
  11.         float max=0, min=31.3;

  12.         for(i=0;i<3;i++){
  13.                 for(j=0;i<12;j++){
  14.                         if(PM[i][j]>max){
  15.                                 max = PM[i][j];
  16.                         }
  17.                         if(PM[i][j] != 0 && PM[i][j]<min){
  18.                                 min = PM[i][j];
  19.                         }
  20.                 }
  21.         }                                               //求PM中的最大,最小值
  22.         printf("最大值%f,最小值%f",max,min);

  23. return 0;
  24. }
复制代码
最佳答案
2019-3-26 20:34:55
  1. for(j=0;i<12;j++)
复制代码

改成
  1. for(j=0;j<12;j++)
复制代码

最佳答案

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-26 20:34:55 | 显示全部楼层    本楼为最佳答案   
  1. for(j=0;i<12;j++)
复制代码

改成
  1. for(j=0;j<12;j++)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-3-26 20:52:54 | 显示全部楼层

我哭了,原来真的数组越界了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表