资讯详情

C语⾔输⼊/输出语句的⽤法

📅 2026/10/8 23:16:41 | 华诺云谱 👁 阅读
C语⾔输⼊/输出语句的⽤法
一、从 stdio.h 说起#includestdio.h它提供了两个最常用的函数printf输出和scanf输入易错点不是studio.h工作室二、printf —— 格式化输出2.1 基本结构printf(格式字符串,参数1,参数2,...);格式字符串中的占位符会被后面的参数依次替换inta3,b5;printf(%d %d %d\n,a,b,ab);// 输出3 5 82.2 常用占位符速查表占位符对应类型说明%d/%iint有符号十进制整数%uunsigned int无符号整数%ldlong长整型%lldlong long64 位整型C99%hdshort短整型%ffloat / doubleprintf 中 float 和 double 都用 %f%.1f/%.2fdouble控制小数位数四舍五入到 1 / 2 位%e/%gdouble科学计数法 / 自动选择短格式%cchar单个字符%schar*字符串%pvoid*指针地址%zusize_tsizeof 的返回类型%%—输出百分号本身长度修饰符规律h → shortl → longll → long longz → size_t。核心口诀d 整、f 浮、c 字符、s 字符串、p 指针、u 无符号。2.3 宽度与对齐控制写在 % 和字母之间写法含义示例输出以 42 为例%5d占宽 5 位右对齐42%-5d占宽 5 位左对齐42%05d宽度内补零00042%.2f保留 2 位小数3.14%4d每数固定占 4 格乘法表对齐的关键实战案例九九乘法表乘积有 1 位数也有 2 位数用\t对齐会歪用%4d固定宽度才能整齐for(inti1;i9;i){for(intj1;j9;j){printf(%4d,i*j);// 每个乘积占 4 格右对齐}printf(\n);// 内层循环结束后换行}三、scanf —— 格式化输入3.1 基本结构scanf(格式字符串,地址1,地址2,...);doublea,b,c;scanf(%lf %lf %lf,a,b,c);// 读入三个 double3.2 两个必记要点不能少scanf 需要知道把数据放进哪个变量的地址a就是取 a 的地址。忘写轻则读到垃圾值重则程序崩溃double 必须用%lf3.3 printf 与 scanf 的占位符差异高频考点类型printf 打印scanf 读入int%d%dfloat%f%fdouble%f%lf← 注意long long%lld%lldchar%c%c前面加空格可跳过空白符为什么不一样printf 是输出float 会自动升级为 double统一用%f即可scanf 是写入float4 字节和 double8 字节内存布局不同用错占位符会写坏数据。记忆口诀打印用 f读入加个 l。四、实战复盘一九九乘法表嵌套循环 输出格式4.1 踩过的坑坑现象原因#include studio.h编译报错没有这个文件拼写错误应为stdio.ha不在循环内输出1111111112for 不加花括号时循环体只含紧跟的第一条语句for (int i 0; i 9; ...) 词符前面需要有基本表达式中间不能有空格双字符运算符是一个整体printf(%d\n)无参数输出垃圾值或报错%d占位符必须有对应的参数只想换行就写printf(\n)\n写在内层循环里81 行每行一个数换行应在内层循环外、外层循环内4.2 正确结构for(inti1;i9;i){// 外层管行从 1 开始数for(intj1;j9;j){// 内层管列printf(%4d,i*j);// 宽度控制保证对齐}printf(\n);// 一行结束换行}4.3 经验总结计数场景从 1 开始for (int i 1; i 9; i)不需要额外的a——for 头部的i本身就是自增循环体超过一条语句必须加花括号即使现在只有一条加上更稳进阶下三角乘法表只需让内层终止条件与 i 挂钩j i五、实战复盘二洛谷 P5708 三角形面积输入 浮点计算 精度5.1 题意输入三角形三边 a、b、c按海伦公式求面积四舍五入保留 1 位小数p (abc) / 2 S √[ p(p−a)(p−b)(p−c) ]5.1 踩过的坑WA 的根因坑现象原因与修正变量用int样例3 4 5碰巧对4 5 6全错15/2整数除法砍成 7p7.5 丢了。全部改 doublescanf 用%ddouble 读入错乱读 double 必须用%lfprintf 用%f输出6.000000题目要求 1 位小数应用%.1f不含 math.hsqrt 未定义#include math.h命令行编译若报undefined reference to sqrt需加-lm5.2 满分代码#includestdio.h#includemath.hintmain(){doublea,b,c;scanf(%lf %lf %lf,a,b,c);// double 读入用 %lf 不能少doublep(abc)/2.0;// 浮点除法2.0 明确表意doublessqrt(p*(p-a)*(p-b)*(p-c));// 海伦公式printf(%.1f\n,s);// 四舍五入保留 1 位小数return0;}5.3 经验总结整数运算和浮点运算是两个世界涉及除法、开方的计算一律用doublesqrt()接收并返回double传负数得nan四舍五入不用手写%.1f就是四舍五入到 1 位小数
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑