算法实战(二)
2024-01-10 16:12:51
基础算法编程
题目来源(PAT题目)
7-2 然后是几点
有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。
输入格式:
输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。
输出格式:
输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
题解:
#include <stdio.h>
int main(){
int beginTime,pastTime;
int time;
int h,m;
scanf("%d %d",&beginTime,&pastTime);
time=beginTime/100*60+beginTime%100+pastTime; // 统一转换为分钟最后进行运算,得到结果
h=time/60*100;
m=time%60;
time=h+m;
printf("%03d\n",time);
return 0;
}
7-3 逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
输入格式:
每个测试是一个3位的正整数。
输出格式:
输出按位逆序的数。
题解:
#include<stdio.h>
int main(){
int i=0,number,array[3]={0};
scanf("%d",&number);
while(number){ // 把三位数进行逆序存放在数组中
array[i++]=number%10;
number/=10;
}
printf("%d",array[0]*100+array[1]*10+array[2]);
return 0;
}
7-6 混合类型数据格式化输入
本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。
输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。
输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。
题解:
#include<stdio.h>
int main() {
double number1, number3;
int number2;
char c;
// 注意: 如果定义的double类型的数据的话 输入格式为%lf float的话为%f
// 输出格式 可以都为%f double也可以为%lf
scanf("%lf %d %c %lf", &number1, &number2, &c, &number3);
printf("%c %d %.2f %.2f", c, number2, number1, number3);
return 0;
}
文章来源:https://blog.csdn.net/m0_49635911/article/details/135504504
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!