【PAT B1014】福尔摩斯的约会(C语言)

认识你们所有人,是多么荣幸
我希望将来的你是我见过最优秀的女子,没有之一
一根网线,能放宽眼睛,能拉长耳朵,同时非礼也视,非礼也听,心神不宁
人的光明胜过太阳,人的温柔明朗超过圆月,人的黑暗胜过一切黑暗,人情的冰冷超过一切严寒
我们都想不起来我们的祖先是怎样生活的

I am still younger and naive
在这里插入图片描述

#include <stdio.h>
#include <string.h>
#define	MAX_STR	61							/* 字符串最大长度 */
/* 从s1和s2中找出数组值相同且下标相同的三对存到t[] **********************************/
void get_t(char t[]){
	char s1[MAX_STR] = {0};
	char s2[MAX_STR] = {0};
	int i;									/* 用于数组s1和s2,扫描对比  */
	int len1, len2;							/* 储存字符串长度 */

	int	k = 0;
	while(k != 3){
		scanf("%s", s1);
		scanf("%s", s2);
		if((len1 = strlen(s1)) > (len2 = strlen(s2)))
			len1 = len2;
		for(i = 0; i < len1; ++i){
			if(s1[i] == s2[i]){
/* 第一对相同的保证在A-G**************************************************************/
				if(k == 0){
					if(s1[i] >= 'A' && s1[i] <= 'G')
						t[k++] = s1[i];
				}
/* 第二对相同的保证在 0-9-A-N 只要找到第二个就退出***********************************/
				else if(k == 1){
					if((s1[i] >= 'A' && s1[i] <= 'N') || (s1[i] >= '0' && s1[i] <= '9')){
						t[k++] = s1[i];
						break;
					}
				}
/* 第三对相同的保证在A-Z或者a-z,注意要的是下标*******************************************/
				else if( k == 2){
					if((s1[i] >= 'A' && s1[i] <= 'Z') || (s1[i] >= 'a' && s1[i] <= 'z')){
						t[k++] = i;
						break;
					}
				}
			}
		}
	}
}

/* 输出星期几 *************************************************************************/
void print_DAY(char t[]){
	static char *week[] = { "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
	
	printf("%s ", week[t[0] - 'A']);		
}
/* 输出小时 **************************************************************************/
void print_HH(char t[]){
	char i = t[1];

	if(i >= '0' && i <= '9')
		printf("0%c:", i);
	else{
		i = i - '7';						/* A 的 ASCII 码是65, 7的为55  */
		printf("%d:", i);
	}
}
/* 输出分钟 *************************************************************************/
void print_MM(char t[]){
	char i = t[2];

	if(i >= 0 && i <= 9)
		printf("0");
	printf("%d", i);
}
int main(){
	char time[3] = {0};						/* 用于储存读取的三对相同字母 */

	get_t(time);							/* 读取时间 */
	print_DAY(time);						/* 输出那一天 */
	print_HH(time);							/* 输出小时 */
	print_MM(time);							/* 输出分钟 */
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值