刚学c编的时间换算问题,感觉编的很笨求指教

问题描述

刚学c编的时间换算问题,感觉编的很笨求指教

题目内容:
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
提醒:要小心跨日的换算。

输入格式:
一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

输入样例:
903

输出样例:
103
时间限制:500ms内存限制:32000kb

解决方案

参考:http://zhidao.baidu.com/link?url=qPyEW9fXRQFZzEPEooqP0Cw5hoGDUdTINi_pgQaQATr5xmn2PvsarLwHylIvfVpFLAO3NDT4RAPw3g-jIUpWjRy5Ye5DdupAWP74h_c1mCW

解决方案二:

#include

int main()
{

int BJT;
int UTC;
printf("请输入北京时间");
scanf("%d",&BJT);
printf("您输入的的北京时间是%dn",BJT);

if(BJT<=2359){
    if(BJT>=800){

                    int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    if(UTC>10){
                        UTC=UTC;
                        printf("对应的世界协调时为%d",UTC);
                    }else{
                        printf("对应的世界协调时为0%d",UTC);
                    }

    }else{
                int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    UTC=2400+UTC;
                    printf("对应的世界协调时为前一天的%d",UTC);
               }
}else{
    printf("您输入的的时间有误,必须小于2359"); 

}
return 0;

}

解决方案三:

#include

int main()
{

int BJT;
int UTC;
printf("请输入北京时间");
scanf("%d",&BJT);
printf("您输入的的北京时间是%dn",BJT);

if(BJT<=2359){
    if(BJT>=800){

                    int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    if(UTC>10){
                        UTC=UTC;
                        printf("对应的世界协调时为%d",UTC);
                    }else{
                        printf("对应的世界协调时为0%d",UTC);
                    }

    }else{
                int a=BJT/1000;
                    int b=(BJT-a*1000)/100;
                    int c=(BJT-a*1000-b*100)/10;
                    int d=(BJT-a*1000-b*100)%10;

                    if(b>8){
                        b=b-8;
                        UTC=a*1000+b*100+c*10+d;
                    }else{
                        a=a-1;
                        b=b+10-8;
                        UTC=a*1000+b*100+c*10+d;
                    }
                    UTC=2400+UTC;
                    printf("对应的世界协调时为前一天的%d",UTC);
               }
}else{
    printf("您输入的的时间有误,必须小于2359"); 

}
return 0;

}

时间: 2024-10-30 00:20:18

刚学c编的时间换算问题,感觉编的很笨求指教的相关文章

我刚学C#,错误不会改帮帮忙!,急的很!

问题描述 我界面上有俩个textbox1和textbox2,在textbox1中输入ID,点击查询,后把所有数据库的信息显示在textbox2中,用ACCESS数据库.帮我改改,不能实现功能,请大家帮忙,有好的程序发给我看看,让我多学习,刚毕业的stringsql1="selectIDfromtest1";stringsql="select*fromtest1whereID='"+textBox1.Text+"'";DataSetds=null;

c语言-刚学C,编了个小程序出错了,请大神帮忙看一下。

问题描述 刚学C,编了个小程序出错了,请大神帮忙看一下. 知道长方形的长和宽,求面积和周长 #include main() { float x,y,a,b; printf ("请输入长和宽且用逗号分隔:); scanf ("%f,%f,&x,&y); a=x*y; b=(x+y)*2; printf ("面积=%f,周长=%fn",a,b); } 解决方案 错误一:include后面缺少头文件包含 错误二:printf中没有右半边的引号 错误三:sc

java小数转换-刚学java的新手遇到的问题

问题描述 刚学java的新手遇到的问题 题目是这样的,编一程序,将摄氏度换为华氏度.公式为:f=c*9/5+32.其中f为华氏度,c为摄氏度. 以下是我的代码 import java.util.*; public class Main{ public static void main (String[] args){ Scanner in1 = new Scanner(System.in); int c =in1.nextInt(); double f = c*9/5+32; System.ou

刚学的java,写了个压缩文件的小程序,一直没有成功

问题描述 刚学的java,写了个压缩文件的小程序,一直没有成功 public class f2Test { public static void main(String[] args){ frame02 f2=new frame02(); } } import java.awt.BorderLayout; import java.awt.Color; import java.awt.Image; import java.awt.Menu; import java.awt.MenuBar; imp

c++ 开发环境-推荐一个适合刚学完c++,适于应用开发软件

问题描述 推荐一个适合刚学完c++,适于应用开发软件 最近刚把c++学习完,目前想自己编个游戏,推荐一个能将c++代码直接开发成应用的开发软件,我电脑是windows 7 64位电脑,配置还行. 解决方案 vs2010啊,学学QT,mfc啥的,就能写点东西出来了

刚学c语言出了小问题。。大神棒棒看 谢谢

问题描述 刚学c语言出了小问题..大神棒棒看 谢谢 一个计算日期距离的玩意 #include int sr(); int main() { printf("请输入起始年月日(以回车间隔) "); int memories; int year = sr(); int month = sr(); int day = sr(); printf("请输入当前年月日(以回车间隔) "); int thisyear = sr(); int thismonth = sr(); i

matlab-关于重采样的问题,刚学很多不懂

问题描述 关于重采样的问题,刚学很多不懂 自己在matlab里面编的一个重采样程序,但是效果很差,而且输出前一段数据有错,有没有人能帮我看看? %input data fa = 8000; %%signal frequency fs = 44100; %%44.1kHz sampling frequency n = 1:64; x = sin(2*pi*fa*n/fs); lengthx = length(x); t = n*1000/128/fs; %plot(t,x);xlabel('tim

17岁...学Java,刚学完框架。,以后的路怎么走,求大神指点

问题描述 刚在培训机构学完Java课程,,就要就业了,,但是觉得很迷茫.不知道以后的路怎么走.学历...高中...瞬间就变成学历==压力了..想搞安卓,但是这刚毕业,继续java的路?学安卓可行吗?会影响以后的路吗?唉16岁的时候看同学搞了一个个人网站挺炫...想搞一个,一问价格,.,卧槽,,几千..学生哪买的起..想着自己做,买书啊,,看视频啊,,求指点啊..各种途径,最后搞出来了,,后面一段时间,帮别人开发,企业网站,(因为在县级城市,要求不那么高,有个域名,百度能收到,,网站漂亮ok完工.

刚学完c#

问题描述 我刚学完c#觉得很有意思不想将其荒废想找个东西做做请问能不能有个适合初学者的项目来让我学习下? 解决方案 解决方案二:学完=高手?解决方案三:你学的是winform的,还是web的?解决方案四:你学的是winform的,还是web的?解决方案五:咦,怎么会2贴?解决方案六:你帮我看看我的iwms的.net的程序是怎么回事,程序用两天就要覆盖一下,覆盖下就好了,不覆盖的话打开页面出现空白页edu.zhuoyue.cc谢谢解决方案七:自己做做什么东西玩..或者买一本实例书...自己做一做.