PTA练习随笔

本文是做题过程中学习到的一些经验总结



一、整数相除,结果为浮点数

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上写博客,回复了之前的评论,总结了两个小经验,但是做题比较慢。相信随着经验的增长,做题速度一定能越来越快!加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值