用C语言编写一个程序输出任意时间下一秒的时间

输入的时间是任意的。还要考虑闰年和平年的问题、还有临界点的问题说废话的您别来了。。。。... 输入的时间是任意的。还要考虑闰年和平年的问题、还有临界点的问题
说废话的您别来了。。。。
展开
 我来答
教育小百科达人
2020-10-08 · TA获得超过156万个赞
知道大有可为答主
回答量:8828
采纳率:99%
帮助的人:466万
展开全部

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

enum DateType

{

    YEAR,

    MONTH,

    DAY,

    HOUR,

    MINUTE,

    SEC,

    MAX,

};

#define DUMMY 0

const char *g_apcCnName[MAX]={"年","月","日","时","分","秒"};

int isLeapYear(int iYear)

{

    return ((iYear%4==0&&iYear%100!=0)||iYear%400==0);

}

int main()

{

    int i;

    int aiTime[MAX]={0};

    int aiTimeMaxValue[MAX]={9999,12,31,23,59,59};

    int aiTimeMinValue[MAX]={1970,1,1,0,0,0,};

    int aiMonthMaxDay[]={DUMMY,31,28,31,30,31,30,31,31,30,31,30,31};

    for(i=YEAR;i<MAX;++i)

    {

        printf("请输入%s",g_apcCnName[i]);

        scanf("%d",aiTime+i);

        if(MONTH==i&&isLeapYear(aiTime[YEAR]))

        {

            aiMonthMaxDay[2]=29;

        }

        if(DAY==i)

        {

          aiTimeMaxValue[DAY]=aiMonthMaxDay[aiTime[MONTH]];

        }

        if(aiTime[i]>aiTimeMaxValue[i]||aiTime[i]<aiTimeMinValue[i])

        {

            printf("输入数据不合法,请重新输入\n");

            i--;

        }

    }

    aiTime[SEC]++;

    for(i=SEC;i>YEAR;i--)

    {

        if(aiTime[i]>aiTimeMaxValue[i])

        {

            aiTime[i]=aiTimeMinValue[i];

            aiTime[i-1]++;

        }

    }

    printf("\n最后的输出结果是:");

    for(i=YEAR;i<MAX;i++)

    {

        printf("%d%s",aiTime[i],g_apcCnName[i]);

    }

    getch();

    return 0;

}



扩展资料:

用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次。

而while循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。

顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,均可广义的把它们看成一个语句。

在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。

帐号已注销
2020-10-08 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:162万
展开全部

#include "stdio.h"

#include "conio.h"

int main(void)

{

int s;

int f;

int m;

printf("请输入一个时间:\n");

scanf("%i %i %i",&s,&f,&m);

if(m==59){

m=0;

f=f++;

printf("%i %i %i\n",s,f,m);

}else {

m=m++;

printf("%i %i %i\n",s,f,m);

}

getch();

}

或:

#include <stdio.h>

#include <time.h>

int main(void)

{

int i=123456789;

clock_t start, end;

start = clock();

while(i--);

end = clock();

printf("The time was: %d\n", (end - start));//单位是毫秒,注意是%d,不再是%f

printf("The time was: %f\n", (double)(end - start) / CLK_TCK); //单位是秒

return 0;

}

扩展资料:

C的数据类型包括:整型(short,int,long,long long)、字符型(char)、实型或浮点型(单精度float和双精度double)、枚举类型(enum)、数组类型、结构体类型(struct)、共用体类型(union)、指针类型和空类型(void)。

变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

参考资料来源:百度百科-C语言

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
正青春梦飞扬

推荐于2017-08-07 · 知道合伙人互联网行家
正青春梦飞扬
知道合伙人互联网行家
采纳数:6837 获赞数:306021
对SEO有这独特见解 工作努力积极、团结同事 连续2个月个人工作完成优秀 客户0投诉 评委最佳班组经理

向TA提问 私信TA
展开全部
1、在程序最开始的地方获取一下系统当前时间并保存;
2、在程序结束的地方获取一下系统当前时间并保存;
3、两者相减即为程序运行时间,将其打印出来便可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友767b1ac
2015-10-25
知道答主
回答量:59
采纳率:0%
帮助的人:11.5万
展开全部
#include "stdio.h"
#include "conio.h"

int main(void)
{

int s;
int f;
int m;

printf("请输入一个时间:\n");

scanf("%i %i %i",&s,&f,&m);

if(m==59){
m=0;
f=f++;

printf("%i %i %i\n",s,f,m);

}else {
m=m++;

printf("%i %i %i\n",s,f,m);
}

getch();

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
次雅霜WG
2010-04-08 · 超过16用户采纳过TA的回答
知道答主
回答量:286
采纳率:0%
帮助的人:0
展开全部
这个好弄啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式