PTA刷题笔记
·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;
}