[每天例题]蓝桥杯 C语言 天干地支

发布时间 2023-05-04 16:00:50作者: 山远尽成云

天干地支

题目

 

思路分析

1.我们首先定义两个二维数组,将天干和地支分别录入,或者建立两个指针录入天干地支

2.选取一个年份作为基准,在这里选择的是2020年庚子年

3.此时输入的年份便被分为三个部分:小于2020年,2020年,大于2020年

4.小于2020年部分减去2020后得到一个负数,我们需要将它转为整数,那应该使用while语句进行加的循环,那应该加什么数呢,由题目我们可以得到,60为一个轮回,也就是说,经过60他对应的天干和地支是不变的,那我们就加上60、

5.最后输出结果时,因为我们以2020年为基准,所以需要加上天干[6]

代码

#include<stdio.h>
int main()
{
	char tiangan[10][10]={"jia","yi","bing","ding","wu","ji","geng","xin","ren","gui"};
	char dizhi[12][10]={"zi","chou","yin","mao","chen","si","wu","wei","shen","you","xu","hai"};
	int n;
	scanf("%d",&n);
	n-=2020;//以2020年为基准
	while(n<0)
	{
		n+=60;//60年为轮回 
	 } 
	 printf("%s%s\n",tiangan[(n+6)%10],dizhi[(n+0)%12]);//因为2020年为庚子年 
	 return 0; 
 } 

运行结果