PAT乙级考试-1014 福尔摩斯的约会

题目
在这里插入图片描述
在这里插入图片描述
思路
本题的难点又在于理解题意,观察输入输出样例和自己实测,题目中的“第一对相同的大写字母”是要求这两个字母要“值相同且在各自串中的位置相同”,这无疑大大降低了难度,如果没有位置相同的条件,确定第一对相同的大写字母要困难不少;后面两个数据类似
另外,由于一周只有7天,则标识星期的数据必须限制在A~G,类似的标识小时的数据必须在0到9以及A到N之间,实测如果没有这两个条件,只限制在A到Z之间各会有一个用例无法通过
理清楚题意后就比较简单里,设置day,hour,min三个变量各自统计出结果,再按照规定打印即可

#include<stdio.h>
int main(void)
{
	char day, hour;
	int min, i, j;
	char ch[4][60];
	const char* week[8] = { " ","MON","TUE","WED","THU","FRI","SAT","SUN" };
	for (i = 0; i < 4; i++)
		scanf("%s", ch[i]);

	for (i = 0, j = 0; ch[0][i] < 'A' || ch[0][i]>'G' || ch[0][i] != ch[1][j]; i++, j++);
	day = ch[0][i];
	for (i = i + 1, j = j + 1; (ch[0][i] < 'A' || ch[0][i]>'N') && (ch[0][i] < '0' || ch[0][i]>'9') || ch[0][i] != ch[1][j]; i++, j++);
	hour = ch[0][i];
	for (i = 0, j = 0; ch[2][i] < 'A' || ch[2][i]>'z' || ch[2][i] != ch[3][j]; i++, j++);
	min = i;

	printf("%s ", week[day - 'A' + 1]);
	if (hour <= '9')
		printf("0%d:", hour - '0');
	else
		printf("%d:", hour - 'A' + 10);
	if (min < 10)
		printf("0%d", min);
	else
		printf("%d", min);
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值