我正在尝试使用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;
}
答案 0 :(得分:2)
由于,
之间的%d
,您会收到seg错误。
删除它
scanf("%d %d",&day, &month);
答案 1 :(得分:1)
分段错误发生在这里:result += array[month-2];
在您的情况下,有两个原因会导致分段错误
month
小于1:您将进入循环,array
的索引将小于0. month
大于12:在这种情况下,array
中的索引大于11。解决方案:在您的主要功能中,您需要检查月份是否在范围内。