【C语言】学习笔记 第3章 格式化输入输出 编程题 梦里梦外; 2024-03-23 16:54 31阅读 0赞 ### 【C语言】学习笔记 ### #### 文章目录 #### * * 【C语言】学习笔记 * * 第3章 格式化输入/输出 * * 编程题 #### 第3章 格式化输入/输出 #### ![在这里插入图片描述][11f75d03f53b4af58fe9c3329c10140a.png_pic_center] scanf 函数和 printf 函数是 C 语言编程中使用得很频繁的两个函数,它们用来格式化输 入和输出。虽然这两个函数功能强大,用好它们却不容易。 ##### 编程题 ##### 【1】编写一个程序,以月/日/年(即 mm/dd/yy)的格式接受用户输入的日期信息,并以年月日(即yyyymmdd)的格式将其显示出来: Enter a date (mm/dd/yyyy): 2/17/2011 You entered the date 20110217 #include<stdio.h> int main(void) { int day, month, year; printf("Enter a date (mm/dd/yyyy): "); scanf("%d/%d/%d", &month, &day, &year); printf("You entered the date %4d%02d%02d", year, month, day); return 0; } ![在这里插入图片描述][428b029e5ef94e05a431bf19e62e41ee.png_pic_center] 【2】编写一个程序,对用户输入的产品信息进行格式化。程序会话应类似下面这样: Enter item number: 583 Enter unit price: 13.5 Enter purchase date (mm/dd/yyyy): 10/24/2010 Item Unit Purchase Price Date 583 $ 13.50 10/24/2010 其中,产品编号和日期项采用左对齐方式,单位价格采用右对齐方式,允许美元金额最大取值为 9999.99。提示:各个列使用制表符控制。 #include<stdio.h> int main(void) { int number; float price; int day, month, year; printf("Enter unit number: "); scanf("%d", &number); printf("Enter unit price: "); scanf("%f", &price); printf("Enter purchase date (mm/dd/yyyy): "); scanf("%d/%d/%d", &month, &day, &year); printf("Item\t\tUnit\t\tPurchase\n"); printf("\t\tPrice\t\tdate\n"); printf("%-d\t\t$%7.2f\t%-02d/%-02d/%-04d", number, price, month, day, year); return 0; } ![在这里插入图片描述][c8cee9c8fac1428da64a8a78f4ab7748.png_pic_center] 【3】图书用国际标准书号(ISBN)进行标识。2007 年 1 月 1 日之后分配的 ISBN 包含 13 位数字(旧的 ISBN 使用 10 位数字),分为 5 组,如 978-0-393-97950-3。第一组(GS1 前缀)目前为 978 或 979。第二 组(组标识)指明语言或者原出版国及地区(如 0 和 1 用于讲英语的国家)。第三组(出版商编号) 表示出版商(393 是 W. W. Norton 出版社的编号)。第四组(产品编号)是由出版商分配的用于识别 具体哪一本书的编号(97950)。ISBN 的末尾是一个校验数字,用于验证前面数字的准确性。编写一 个程序来分解用户输入的 ISBN 信息: Enter ISBN: 978-0-393-97950-3 GS1 prefix: 978 Group identifier: 0 Publisher code: 393 Item number: 97950 Check digit: 3 注意:每组中数字的个数是可变的,不能认为每组的长度都与示例一样。用实际的 ISBN 值(通常放 在书的封底和版权页上)测试你编写的程序。 #include<stdio.h> int main(void) { int GS1, Group, Publisher, Item, Check; printf("Enter ISBN: "); scanf("%d-%d-%d-%d-%d", &GS1, &Group, &Publisher, &Item, &Check); printf("GS1 prefix: %d\n", GS1); printf("Group identifier: %d\n", Group); printf("Item number: %d\n", Publisher); printf("Item number: %d\n", Item); printf("Check digit: %d\n", Check); return 0; } ![在这里插入图片描述][796d67f0ca174aa0898afe9e2af32849.png_pic_center] 【4】编写一个程序,提示用户以(xxx) xxx-xxxx 的格式输入电话号码,并以 xxx.xxx.xxxx 的格式显示该 号码: Enter phone number [(xxx) xxx-xxxx]: (404) 817-6900 You entered 404.817.6900 #include<stdio.h> int main(void) { int first, second, third; printf("Enter phone number [(xxx) xxx-xxxx]: "); scanf("(%d)%d-%d", &first, &second, &third); printf("You entered %03d.%03d.%04d\n", first, second, third); return 0; } ![在这里插入图片描述][ce2a633fbf4944dc9ca57bf5d0851b6f.png_pic_center] 【5】编写一个程序,要求用户(按任意次序)输入 1~16 的所有整数,然后用 4×4 矩阵的形式将它们显示 出来,再计算出每行、每列和每条对角线上的和: Enter the numbers from 1 to 16 in any order: 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 Row sums: 34 34 34 34 Column sums: 34 34 34 34 Diagonal sums: 34 34 如果行、列和对角线上的和都一样(如本例所示),则称这些数组成一个幻方(magic square)。这里 给出的幻方出现于艺术家和数学家 Albrecht Dürer 创作于 1514 年的一幅画中。(注意,矩阵的最后一 行中间的两个数给出了该画的创作年代。) #include<stdio.h> int main(void) { int num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11, num12, num13, num14, num15, num16; // 离谱 printf("Enter the number from 1 to 16 in any order:\n"); scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &num1, &num2, &num3, &num4, &num5, &num6, &num7, &num8, &num9, &num10, &num11, &num12, &num13, &num14, &num15, &num16); printf("%2d %2d %2d %2d \n", num1, num2, num3, num4); printf("%2d %2d %2d %2d \n", num5, num6, num7, num8); printf("%2d %2d %2d %2d \n", num9, num10, num11, num12); printf("%2d %2d %2d %2d \n", num13, num14, num15, num16); printf("Row sums: %d %d %d %d\n", (num1 + num2 + num3 + num4), (num5 + num6 + num7 + num8), (num9 + num10 + num11 + num12), (num13 + num14 + num15 + num16)); printf("Column sums: %d %d %d %d\n", (num1 + num5 + num9 + num13), (num2 + num6 + num10 + num14), (num3 + num7 + num11 + num15), (num4 + num8 + num12 + num16)); printf("Diagonal sums: %d %d\n", (num1 + num6 + num11 + num16), (num4 + num7 + num10 + num13)); return 0; } ![在这里插入图片描述][e8d7c3a736004497ba05e162d298a657.png_pic_center] 【6】修改 3.2 节的 addfrac.c 程序,使用户可以同时输入两个分数,中间用加号隔开: ![在这里插入图片描述][c812284a789e44fba7e34713d130ac86.png_pic_center] Enter two fractions separated by a plus sign: 5/6+3/4 The sum is 38/24 #include<stdio.h> int main(void) { int num1, denom1, num2, denom2, result_num, result_denom; printf("Enter two fractions separated by a plus sign: "); scanf("%d/%d+%d/%d", &num1, &denom1, &num2, &denom2); result_num = num1 * denom2 + num2 * denom1; result_denom = denom1 * denom2; printf("The sum is %d/%d\n", result_num, result_denom); return 0; } ![在这里插入图片描述][d480df1fdc9f4401b429ec7db3cb18af.png_pic_center] [11f75d03f53b4af58fe9c3329c10140a.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/e3e827205b7d4b469efe7920a8ae83b5.png [428b029e5ef94e05a431bf19e62e41ee.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/daf2a1b0d53c45d4a635961268a65781.png [c8cee9c8fac1428da64a8a78f4ab7748.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/f6f868de2cb74223a3b5d66aa92b2779.png [796d67f0ca174aa0898afe9e2af32849.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/df96c8dec3934499aa4ac255e55b976b.png [ce2a633fbf4944dc9ca57bf5d0851b6f.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/b014a7d3478f420f90d94dec49c54048.png [e8d7c3a736004497ba05e162d298a657.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/84d22eb8322c43d5bc4ca9c2d2c79548.png [c812284a789e44fba7e34713d130ac86.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/f13f6d17a171416a9fb77b82ba1f4e4d.png [d480df1fdc9f4401b429ec7db3cb18af.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/b8bad543539d40819c7768d54a481fa6.png
相关 【C语言】学习笔记 第4章 表达式 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 编程题 第4章 表达式 ![在 浅浅的花香味﹌/ 2024年03月23日 16:56/ 0 赞/ 74 阅读
相关 【C语言】学习笔记 第3章 格式化输入输出 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第3章 格式化输入/输出 编程题 第3章 格式化输 梦里梦外;/ 2024年03月23日 16:54/ 0 赞/ 32 阅读
相关 【C语言】学习笔记 第3章 格式化输入输出 3.2 scanf函数 【C语言】学习笔记 文章目录 【C语言】学习笔记 第3章 格式化输入/输出 3.2 scanf函数 灰太狼/ 2024年03月23日 16:54/ 0 赞/ 73 阅读
相关 【C语言】学习笔记 第3章 格式化输入输出 3.1 printf函数 【C语言】学习笔记 文章目录 【C语言】学习笔记 第3章 格式化输入/输出 3.1 printf函数 阳光穿透心脏的1/2处/ 2024年03月23日 16:54/ 0 赞/ 62 阅读
相关 【C语言】学习笔记 第2章 C语言基本概念 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第2章 C语言基本概念 编程题 第2章 C语言基本 红太狼/ 2024年03月23日 16:18/ 0 赞/ 52 阅读
相关 【C语言】学习笔记 第11章 指针 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第11章 指针 编程题 第11章 指针 ![在 古城微笑少年丶/ 2024年03月22日 10:46/ 0 赞/ 14 阅读
相关 【C语言】学习笔记 第9章 函数 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第9章 函数 编程题 第9章 函数 ![在这里 今天药忘吃喽~/ 2024年03月22日 10:19/ 0 赞/ 25 阅读
相关 【C语言】学习笔记 第8章 数组 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第8章 数组 编程题 第8章 数组 ![在这里 左手的ㄟ右手/ 2024年03月22日 09:45/ 0 赞/ 58 阅读
相关 【C语言】学习笔记 第6章 循环 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 编程题 第6章 循环 ![在这里 左手的ㄟ右手/ 2024年03月22日 08:44/ 0 赞/ 72 阅读
相关 【C语言】学习笔记 第13章 字符串 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第13章 字符串 编程题 第13章 字符串 ! ゝ一世哀愁。/ 2024年03月22日 06:39/ 0 赞/ 14 阅读
还没有评论,来说两句吧...