为何RE?
查看原帖
为何RE?
256340
Miller2019楼主2020/5/22 08:06

RT

#include<stdio.h>
const char*ans[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
const int cnt[]={0,4,7,7,3,5,1,3,6,2,4,7,2};
int m,d;
int main()
{
	scanf("%d%d",&d,&m);
	puts(ans[cnt[m]+d%7-2]);
	return 0;
}

根据我的分析,此代码RE的问题可能是数组越界或者除以 0 膜 0 的问题。但是并没有出现 0 ,所以排除第二种情况。应该是数组越界,访问到负下标的数组元素。但是题目说是正常的日期,d和m肯定大于 0 ,cnt[m]+d%7-2也就大于 0 ,所以说应该也不会数组越界。那到底为何 RE 呢?

2020/5/22 08:06
加载中...