用c语音编写一个程序,计算从1970年1月1日0点开始,经过n秒后的时间(注音:考虑闰年的情况)

如题所述



void main()
{
    long int n;
int y=1970,m=1,d=1,h=0,min=0,s=0;
printf("现在时间已从%d年%d月%d日%2d:%2d:%2d经过了多少秒?\n",y,m,d,h,min,s);
    scanf("%d",&n);
while(n--)
    {
        s++;
        if(s==60)//计时到60s
        {
            s=0;
            min++;
            if(min==60)//计时到60min
            {
                min=0;
                h++;
                if(h==24)//计时到24h
                {
                    h=0;
                    d++;
                    switch(d)//计时到29或30或31或32天
                    {
case 29:
if(m==2&&!(y%4==0&&(y%100!=0||y%400==0)))//不是闰年的2月
                        {
                            d=1;
                            m++;
}
                        break;

                        case 30:
if(m==2&&(y%4==0&&(y%100!=0||y%400==0)))//是闰年的2月
{
d=1;
m++;
}
break;

                        case 31:
if(m==4||m==6||m==9||m==11)//是4、6、9、11月,小月,一个月30天
{
d=1;
m++;
}
break;

case 32://是1、3、5、7、8、10、12月,大月,一个月31天
d=1;
m++;
if(m==13)
{
m=1;
y++;
}
break;

                        default:break;
                    }
                    
                    
                }
            }
        }
    }
printf("现在时间是%d年%d月%d日%2d:%2d:%2d\n",y,m,d,h,min,s);
}

追问

对不起,你做个不能达到效果呀,经过这么多秒是几月几日几时不能正确显示呀

追答

这个是VC控制台程序,请在程序开头加上#include"stdio.h"

编译后运行的结果如下:

输入14:


输入5097599:


输入5097600:


输入68255999:


输入68256000:

追问

谢谢。很感谢你

设数组a的定义如下 int a[20]={2,4,6,8,10,12,14,16},已存入数组的数已经按照由小到大的顺序排列,输入一个数,把它插入这组数中,使这组数仍按由小到大排列,并输出这列数

能帮我吗

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网