以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int year;
printf("请输入公元纪年的年份:");
scanf("%d", &year);
int huangdi_year = year - 2697; // 计算黄帝纪年的年份
int ganzhi_num = (year % 60) - 3; // 计算干支序号数
if (ganzhi_num <= 0) {
ganzhi_num += 60;
}
char* ganzhi_table[] = {"甲子", "乙丑", "丙寅", "丁卯", "戊辰", "己巳", "庚午", "辛未", "壬申", "癸酉", "甲戌", "乙亥", "丙子", "丁丑", "戊寅", "己卯", "庚辰", "辛巳", "壬午", "癸未", "甲申", "乙酉", "丙戌", "丁亥", "戊子", "己丑", "庚寅", "辛卯", "壬辰", "癸巳", "甲午", "乙未", "丙申", "丁酉", "戊戌", "己亥", "庚子", "辛丑", "壬寅", "癸卯", "甲辰", "乙巳", "丙午", "丁未", "戊申", "己酉", "庚戌", "辛亥", "壬子", "癸丑", "甲寅", "乙卯", "丙辰", "丁巳", "戊午", "己未", "庚申", "辛酉", "壬戌", "癸亥"}; // 干支表
char* ganzhi = ganzhi_table[ganzhi_num]; // 获取干支年纪
printf("%d年的黄帝纪年为%d年,干支年纪为%s。\n", year, huangdi_year, ganzhi);
return 0;
}
```
运行程序,输入公元纪年的年份,即可计算输出其黄帝纪年的年份和干支年纪。