棠下手机网站开发怎么创建网站快捷方式
基础算法编程
- 题目来源([PAT题目](https://pintia.cn/problem-sets/14/exam/problems/type/6))
- 7-2 然后是几点
- 7-3 逆序的三位数
- 7-6 混合类型数据格式化输入
题目来源(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也可以为%lfscanf("%lf %d %c %lf", &number1, &number2, &c, &number3);printf("%c %d %.2f %.2f", c, number2, number1, number3);return 0;
}