系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、题目
- 1、在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm × 841mm,将 A0 纸沿长边对折后为 A1 纸,大小为 841mm × 594mm,在对折的过程中长度直接取下整(实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸,依此类推。
- 持续更新中
- 结尾
前言
随着计算机编程语言的发展,很多东西逐渐饱和了;但是算法会跟随你一辈子的逻辑思维,任何人都拿不走.
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目
1、在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm × 841mm,将 A0 纸沿长边对折后为 A1 纸,大小为 841mm × 594mm,在对折的过程中长度直接取下整(实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸,依此类推。
答案:
请输入纸张名称 (A0, A1, A2, ..., A9): A6
A6: 105 mm × 148 mm
代码:
#include <stdio.h>
#include <string.h>struct Paper {int width; // 宽度 (mm)int height; // 高度 (mm)
};// 初始化 ISO A 系列纸张尺寸
void initializePapers(struct Paper papers[]) {papers[0].width = 841; // A0papers[0].height = 1189;int i; for ( i = 1; i <= 9; i++) {papers[i].width = papers[i - 1].height; // 短边为长边papers[i].height = papers[i - 1].width / 2; // 长边为短边的一半}
}// 根据纸张名称查找并打印尺寸
void printPaperSize(const char *paperName, struct Paper papers[]) {int index = paperName[1] - '0'; // 获取纸张等级数字(如:A2 -> 2)if (index >= 0 && index <= 9) {printf("%s: %d mm × %d mm\n", paperName, papers[index].width, papers[index].height);} else {printf("无效的纸张名称。\n");}
}int main() {struct Paper papers[10]; // 存储 A0 到 A9 尺寸initializePapers(papers); // 初始化纸张尺寸char paperName[3]; // 用于接收纸张名称(如 "A0")// 输入纸张名称printf("请输入纸张名称 (A0, A1, A2, ..., A9): ");fgets(paperName, sizeof(paperName), stdin);// 去掉换行符size_t len = strlen(paperName);if (len > 0 && paperName[len - 1] == '\n') {paperName[len - 1] = '\0';}// 打印相应纸张的尺寸printPaperSize(paperName, papers);return 0;
}
思路:
1.纸张结构体:
定义了 struct Paper 用于存储纸张的宽度和高度。
2.初始化纸张尺寸:
initializePapers(struct Paper papers[]) 函数用于初始化 A0 到 A9 的尺寸。
3.打印纸张尺寸:
printPaperSize(const char *paperName, struct Paper papers[]) 函数根据输入的纸张名称找到相应的尺寸并打印。
4.主函数:
在 main() 函数中,首先调用 initializePapers 函数来初始化纸张尺寸。
然后接收用户输入的纸张名称,并去掉换行符。
5.最后调用 printPaperSize 函数打印相应纸张的尺寸。
持续更新中
结尾
Come on!