编写英寸转码/英尺/英寸的C程序及题目示例疑问解答
英寸转码、英尺、英寸的C程序解析与实现
题目逻辑解析
题目要求编写C程序处理多个英寸长度值,将每个值转换为**码(yd)、英尺(ft)、英寸(in)**的组合格式,核心是单位换算逻辑:
- 1码 = 3英尺 = 36英寸
- 1英尺 = 12英寸
以示例输入100英寸为例,计算过程如下:
- 先求码数:用总英寸数除以36,取整数商,
100 / 36 = 2,即2码;剩余未转换的英寸数为100 % 36 = 28。 - 再求英尺数:用剩余的28英寸除以12,取整数商,
28 / 12 = 2,即2英尺;最后剩余的英寸数为28 % 12 = 4。 - 最终组合结果就是
2 yd 2 ft 4 in。
输入终止标记推荐用负数(比如输入-1),因为整数输入场景下,负数不可能是长度值,逻辑合理且用户操作简单。
C程序实现
以下是完整的程序代码,包含输入循环、单位转换和结果输出:
#include <stdio.h> int main() { int total_inches; printf("请输入英寸长度(输入负数终止程序):\n"); // 循环读取输入,直到输入负数或非整数 while (scanf("%d", &total_inches) == 1 && total_inches >= 0) { // 计算码数和剩余英寸 int yards = total_inches / 36; int remaining = total_inches % 36; // 计算英尺数和最终剩余英寸 int feet = remaining / 12; int inches = remaining % 12; // 按指定格式输出结果 printf("%d yd %d ft %d in\n", yards, feet, inches); printf("请输入下一个英寸长度(输入负数终止程序):\n"); } printf("程序已终止。\n"); return 0; }
代码说明
- 循环条件:
scanf("%d", &total_inches) == 1确保成功读取整数,total_inches >= 0作为终止判断,输入负数时退出循环。 - 单位转换:利用整数除法(
/)取商得到高一级单位的数量,取余运算(%)得到剩余的低级单位数量,符合单位换算的逻辑。 - 交互提示:每次输入后给出明确提示,提升用户体验。
内容的提问来源于stack exchange,提问作者Antony Muigai
相关产品推荐
相关产品推荐

