c语言高手过来帮帮忙啊!!!!多给分啊~

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:56:57
下面是于 公历和农历之间如何转换 的问题!
谁能帮我简单把下面的程序写几句注释啊?主要思想是什么,算法是什么啊 ?? 还有运行的结果是什么???运行的时候哪里错了????
我知道可能麻烦了点,不过我会多给分的,谢谢啊!!!!
#include<stdio.h>
#include<bios.h>
struct data
{
int year1;
int specialmonth;
int month1[13];
};
struct day{
int year2;
int month2;
int day2;
};

int dis_day1(struct day *op,int *p)
{
int n=0,x;
n+=(op->year2-1980)*365;
for(x=1980;x<op->year2;x++)
if((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))n+=1;
for(x=1;x<(op->month2);x++)
n+=*(p+x-1);
x=op->year2;
if(((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))&&op->month2>2)n+=1;
n+=(op->day2-1);
return n;
}
int dis_day2(struct day *op,struct data *p)
{
int n=0,maxmonth,i,x;
for(x=1980;x<op->year2;x++)
{ if((p+x-1979)->specialmonth==0)maxmont

这个程序是谁写的啊,一点都不规范,而且还不完整,
把main函数里的switch语句后加个(c)就可以正常编译运行了。
程序的作用是选择要转换为阴历还是阳历,例如选择阴历好后输入一组年月日(格式例1981.11.30,在1980到2015年之间),之后程序将为你转换为阴历(1981.11.5)

帮你注释了两个函数,另外两个函数的思想相同,
总的来说这个程序的逻辑不是很好,不用心看的话很难理解作者的想法,我没时间,要不帮你重新写了,

如果还是看不懂你再留言。

#include<stdio.h>
#include<bios.h>
struct data
{
int year1;
int specialmonth;
int month1[13];
};

struct day
{
int year2;
int month2;
int day2;
};

int dis_day1(struct day *op,int *p) /*计算并返回当年距1980年的天数*/
{
int n=0,x;
n+=(op->year2-1980)*365;
for(x=1980;x<op->year2;x++) /*如果当年是闰年,天数加1*/
if((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))
n+=1;
for(x=1;x<(op->month2);x++)
n+=*(p+x-1);
x=op->year2;
if(((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))&&op->month2>2)