C-程序给我分段错误,不知道原因



我正在尝试使用C进行编程,并实现通过输入日期来计算当年天数的函数。但是,它一直给我带来细分错误。谁能帮忙?

#include <stdio.h>
int datum2int(int day, int month){
  int result=0;
  int array[]={31,28,31,30,31,30,31,30,31,30,31,30};
  while((month-1)!=0){
    result += array[month-2];
    month--;
  }
  result +=day;
  return result;
}

int main(){
  int day,month;    
  scanf("%d, %d",&day, &month);
  printf("%d", datum2int(day, month));
  return 0;
}

由于 %d之间的 ,

删除

scanf("%d %d",&day, &month);

分段故障正在发生:result += array[month-2];

两个原因可能导致您的案例分割故障

  1. month小于1:您的遗嘱进入循环,array的索引小于0。
  2. month大于12:在这种情况下,array中的索引大于11。

解决方案:在您的主要功能中,您需要检查月份是否在范围内。

相关内容

  • 没有找到相关文章