PTA(Advanced Level) 1100:Mars Numbers(C语言实现)

PTA(Advanced Level) 1100:Mars Numbers(C语言实现)

分析:乙级题目1044:火星数字
添加链接描述

#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
	int n;
	char s1[13][5]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"},
		 s2[13][4]={"","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
	char s3[10]="";
	scanf("%d",&n);
	getchar();
	while(n--)
	{
		gets(s3);
		if(isdigit(s3[0]))
		{
			int num,s=0,g=0;
			sscanf(s3,"%d",&num);
			s=num/13;//十位
			g=num%13;//个位
			if(s && g)
				printf("%s %s\n",s2[s],s1[g]);
			else if(s && !g)
				printf("%s\n",s2[s]);
			else//只有个位且个位为0也要输出
				printf("%s\n",s1[g]);
		}
		else
		{
			int sum=0,i,j,len=strlen(s3);
			for(i=0; i<len; i+=4)
				for(j=0; j<13; j++)
					if(strncmp(s2[j],s3+i,3) == 0)
						sum+=13*j;
					else if(strncmp(s1[j],s3+i,3) == 0)
						sum+=j;
			printf("%d\n",sum);
		}
	}
	return 0;
}

版权声明:本文为LIve1AnD1LeARN原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。