本文是做题过程中学习到的一些经验总结
PTA练习随笔2021.3.14
一、整数相除,结果为浮点数
1.对两个整数做除法想得到浮点数时,可以对任意一个变量先做乘法,乘1.0,但是要注意一定是先乘1.0再做除法,否则就会出错:
正确:
printf("%d / %d = %.2f",a,b,a/(b*1.0));
错误:
printf("%d / %d = %.2f",a,b,a/b*1.0);
由于除数乘1.0还需要加括号,比较麻烦,建议对被除数乘1.0
二、数据输出补齐前置位0
.有时数据输出时可能会要求用0补齐前置位有时要求不补齐,还有可能在同一题中出现前两位要求补齐,后两位要求不补齐的情况。一定要注意题干中主要使用两位数据做示例,但是实际测试可能会出现个位数的情况。可以加一个if语句进行判断,当数据为个位数时,补齐0再输出数据。
if(T3_min<10){
printf("%d0%d",T3_h,T3_min);
}
else{
printf("%d%d",T3_h,T3_min);
完整题目:
我的答案(已通过测试):
//方案一:先将小时和分钟分离出来,然后第一个时间的分钟与第二个分钟数相加(可能是负数),算出对应的小时和分钟,与之前分离出来的小时数相加。(如果算出的分钟数为负数,那么小时数还要再减一。)
//方案二:先将小时和分钟分离出来,然后计算总的分钟数与第二个分钟数相加,算出对应的小时和分钟
#include<stdio.h>
int main(){
int T1,T2,T3;
scanf("%d %d",&T1,&T2);
int T1_h,T1_min;
int a1=T1/1000;
int a2=(T1/100)%10;
int a3=(T1/10)%10;
int a4=T1%10;
T1_h=a1*10+a2;
T1_min=a3*10+a4;
//printf("T1_h:%d T1_min:%d\n",T1_h,T1_min);
int T3_h=(T1_h*60+T1_min+T2)/60;
int T3_min=(T1_h*60+T1_min+T2)%60;
//printf("T3_h:%d T3_min:%d\n",T3_h,T3_min);
if(T3_min<10){
printf("%d0%d",T3_h,T3_min);
}
else{
printf("%d%d",T3_h,T3_min);
}
return 0;
}
总结
今天简单复习了在CSDN上写博客,回复了之前的评论,总结了两个小经验,但是做题比较慢。相信随着经验的增长,做题速度一定能越来越快!加油!