LQ0249 干支纪年程序填空
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0249 干支纪年程序填空相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2012初赛 C++ C组E题
题目描述
本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填空部分出错外,还需注意是否因在复制后有改动非填空部分产生错误。
在我国古代和近代,一直采用干支法纪年。它采用 10 天干和 12 地支配合,一个循环周期为 60 年。
10 天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸;
12 地支是:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥。
如果某年是甲子,下一年就是乙丑,再下是丙寅,…癸酉,甲戌,乙亥,丙子,…
总之天干、地址都是循环使用,两两配对。
今年(2012)是壬辰年,1911 年辛亥革命
下面的代码根据公历年份输出相应的干支法纪年。已知最近的甲子年是1984 年。
请仔细阅读代码,并填写划线部分缺失的代码。
源代码
C
#include <stdio.h>
#include <stdlib.h>
void f(int year)
char* x[] = "甲","乙","丙","丁","戊","己","庚","辛","壬","癸";
char* y[] = "子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥";
int n = year - 1984;
while(n<0) n += 60;
printf("%s%s\\n", x[_______], y[_______]);
int main(int argc, char* argv[])
f(1911);
f(1970);
f(2012);
return 0;
问题分析
2空分别填入“n%10”和“n%12”
AC的C语言程序如下:
#include <stdio.h>
#include <stdlib.h>
void f(int year)
char* x[] = "甲","乙","丙","丁","戊","己","庚","辛","壬","癸";
char* y[] = "子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥";
int n = year - 1984;
while(n<0) n += 60;
printf("%s%s\\n", x[n%10], y[n%12]);
int main(int argc, char* argv[])
f(1911);
f(1970);
f(2012);
return 0;
以上是关于LQ0249 干支纪年程序填空的主要内容,如果未能解决你的问题,请参考以下文章