栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1014 福尔摩斯的约会 (20 分)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1014 福尔摩斯的约会 (20 分)

#include
#include
int main(void)
{
	//1.读入字符串
	char a[100] = { 0 };
	char b[100] = { 0 };
	char c[100] = { 0 };
	char d[100] = { 0 };
	scanf_s("%s", a, 100);
	scanf_s("%s", b, 100);
	scanf_s("%s", c, 100);
	scanf_s("%s", d, 100);

	//2.判断日期
	int cnt;
	char date[7][10] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };
	unsigned int max = strlen(a);
	if (max < strlen(b))
		max = strlen(b);
	for (cnt = 0; cnt < max; cnt++)
	{
		if (a[cnt] == b[cnt] && a[cnt] >= 65 && a[cnt] <= 71)
		{
			int day = a[cnt] - 65;
			printf("%s", date[day]);
			break;
		}
	}
	
	//3.钟头确定
	
	int clock[24] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 };
	for (cnt += 1; cnt < max; cnt++)
	{
		if (a[cnt] == b[cnt])
		{
			if (a[cnt] >= 48 && a[cnt] <= 57)
			{
				printf(" %02d", clock[a[cnt] - 48]);
				break;
			}
			if (a[cnt] >= 65 && a[cnt] <= 78)
			{
				printf(" %02d", clock[a[cnt] - 55]);
				break;
			}
		}
	}
	printf(":");

	//4.分钟确定
	unsigned int max2 = strlen(c);
	if (max2 < strlen(d))
		max2 = strlen(d);
	for (cnt = 0; cnt < max2; cnt++)
	{
		if (c[cnt] == d[cnt])
		{
			if (c[cnt] >= 65 && c[cnt] <= 90)
			{
				printf("%02d", cnt);
				break;
			}
			if (c[cnt] >= 97 && c[cnt] <= 122)
			{
				printf("%02d", cnt);
				break;
			}
		}
	}
	return 0;
}

写在前面:

我认为这道题就是在考察对于题目的理解和翻译 要理解好题目的各项要求 还要有点猜测出题者的意图

1.读入字符串

这个地方我们直接用字符串 考虑到后面是对字符串内部的每个字母进行比较

2.日期判断

题目要求是大写英语字母 我们就用ASC码来做范围进行确定

记得要在第一次打印完后就break——不要犯低级错误

3.钟头确定

总之用数组来储存数字 将字符都转化为整数类型

这里注意一下 钟头必须是两位数字 这个是后来检查的时候发现的

4.分钟确定

做好判断后即输出

注:关于“没有为字符串添加零终止符”

搜寻csdn上的高阅读量回答后 主要就是在字符串后面添加一个{0}即可 ——这也说明这个并不是将字符串进行初始化 而仅仅是添加一个零终止符

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316519.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号