·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;
}