PTA刷题笔记

发布于:2025-05-23 ⋅ 阅读:(19) ⋅ 点赞:(0)

·7-1 厘米换算英尺英寸

代码如下:

#include<stdio.h>

int main()
{
    int cm = 0;
    scanf("%d", &cm);
    double all_inch = cm / 2.54;//1英寸=2.54厘米,计算总英寸数
    int foot = (int)all_inch / 12;
    int inch = (int)all_inch % 12;
    printf("%d %d", foot, inch);
    return 0;
}

·7-2 然后是几点

代码如下:

#include<stdio.h>

int main()
{
    int time = 0;//起始时间
    int min = 0;//流逝的分钟数
    scanf("%d %d", &time, &min);
    int min1 = time % 100;//起始分钟
    int h = time / 100;//起始小时
    int total_min = h * 60 + min1 + min;
    total_min = (total_min % 1440 + 1440) % 1440;//处理同一天范围
    int hour = total_min / 60;
    int last_min = total_min % 60;
    
    if(hour == 0)
    {
        printf("0%02d", last_min);//0点需要前导零
    }
    else
    {
        printf("%d%02d", hour, last_min);
    }
    return 0;
}

·7-3逆序的三位数

错误代码:

正确代码:

#include<stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    int units = n % 10;
    int tens = n / 10 % 10;
    int hundreds = n / 100;
    int ans = units * 100 + tens * 10 + hundreds;
    printf("%d", ans);
    return 0;
}

7-4 BCD解密

错误代码(虽然数据通过率达100%,但有点投机取巧的意思):

正确代码:

#include<stdio.h>

int main()
{
    int wrong_num;
    scanf("%d", &wrong_num);
    //将错误数字转换为十六进制形式
    int high_nibble = wrong_num / 16;//获取高四位
    int low_nibble = wrong_num % 16;//获取低四位
    //组合成正确的十进制数
    int correct_num = high_nibble * 10 + low_nibble;
    printf("%d", correct_num);
    return 0;
}

7-5 表格输出

代码如下:

#include <stdio.h>

int main() 
{
    // 打印表头
    printf("------------------------------------\n");
    printf("Province      Area(km2)   Pop.(10K)\n");
    printf("------------------------------------\n");
    
    // 打印各行数据
    printf("Anhui         139600.00   6461.00\n");
    printf("Beijing        16410.54   1180.70\n");
    printf("Chongqing      82400.00   3144.23\n");
    printf("Shanghai        6340.50   1360.26\n");
    printf("Zhejiang      101800.00   4894.00\n");
    
    // 打印表格底部
    printf("------------------------------------\n");
    
    return 0;
}

7-6 混合类型数据格式化输入

代码如下:

#include<stdio.h>

int main()
{
    double first = 0.00;
    int a = 0;
    char ch = 0;
    double second = 0.00;
    scanf("%lf %d %c %lf", &first, &a, &ch, &second);
    printf("%c %d %.2lf %.2lf", ch, a, first, second);
    return 0;
}


网站公告

今日签到

点亮在社区的每一天
去签到