【C++语法】浮点型与 scanf 和 printf

发布时间:2026/7/12 15:17:30
【C++语法】浮点型与 scanf 和 printf 文章目录【C语法】浮点型与scanf和printf1. 浮点数2.printf的使用方法3.scanf的使用方法【C语法】浮点型与scanf和printf在DEV-C中你可能会发现这样一个细节C语言和C的包含文件头文件库中C的文件只比C语言文件多了一个其他的都是一样的文件。这个说明C语言中的头文件在C中同样适用。并且来说C语言中会有很多对于语法的限制而C中可能不会这期讲的两个函数scanf和printf都是C/C均可以编译的语法而cin和cout只有C可以编译。因此这期的两个函数可以在不写命名空间的情况下使用。当然定义方法也和int、long long那一类一样都要在变量名前加上类型且可以用赋值1. 浮点数浮点数Floating Point Number说白了就是小数。在C中float、double和long double是三种浮点数类型它们的存储范围和精度由IEEE 754标准定义类型占用字节大概范围有效数字位数float4 44± 1.18 × 10 − 38 \pm1.18\times10^{-38}±1.18×10−38到± 3.40 × 10 38 \pm3.40\times10^{38}±3.40×10386 66到7 77double8 88± 2.23 × 10 − 308 \pm2.23\times10^{-308}±2.23×10−308到± 1.80 × 10 308 \pm1.80\times10^{308}±1.80×1030815 1515到16 1616long double16 1616± 3.36 × 10 − 4932 \pm3.36\times10^{-4932}±3.36×10−4932到± 1.19 × 10 4932 \pm1.19\times10^{4932}±1.19×10493218 1818到19 1919在数学中有一个叫做科学计数法的而在编程中也出现过这种浮点数表示方法x ⋅ 10 y x e y x\cdot10^yxeyx⋅10yxey例如2 × 10 5 2 e 5 200000 2\times10^52e52000002×1052e52000002.printf的使用方法这个函数位于cstdio/stdio.h库中这两个库在C编译器中都可以用但C语言只能用后缀.h的它是格式化输出Print Format第一个语法可以输出字符串printf(Hello world! \n);// 输出Hello world和 上期 的换行一样可以使用\n但std::endl不在cstdio/stdio.h中那么格式化格式在哪里呢printf的第一项一定是一个字符串而字符串中可能会包含一些%它可以填充其他的类型作为填充标识符。后面是各种各样的变量或常量所有元素间使用,分隔开以下是想执行一些操作时可以用的类型标识符*前面有个^表示了解一下就行后面会有可读性更好的方法操作填充标识符以十进制输出一个 [short/int/long/long long] 类型的数字[%hd/%d/%ld/%lld]^以十六进制输出一个 [short/int/long/long long] 类型的数字[%hx/%x/%lx/%llx]^以八进制输出一个 [short/int/long/long long] 类型的数字[%ho/%o/%lo/%llo]^输出一个 [short/int/long/long long] 类型的数字设置场宽为2并向左对齐[%-2hd/%-2d/%-2ld/%-2lld]^输出一个 [short/int/long/long long] 类型的数字设置场宽为2并向右对齐[%2hd/%2d/%2ld/%2lld]以浮点数形式输出一个 [float/double/long double] 类型的数字[%f/%lf/%Lf]以浮点数形式输出一个 [float/double/long double] 类型的数字精度为3[%.3f/%.3lf/%.3Lf]^以浮点数形式输出一个 [float/double/long double] 类型的数字精度不定[%.*f/%.*lf/%.*Lf]以科学计数法输出一个 [float/double/long double] 类型的数字e小写[%e/%le/%Le]以科学计数法输出一个 [float/double/long double] 类型的数字E大写[%E/%lE/%LE]填充就很简单了从前往后寻找%依次填充进去。如果%中有*则先填充里面的*再填充%上面的话这么一说可能有点复杂所以作者将会给出一张字符图和一串代码来加以理解图^右边的数字表示填充顺序而^的尖端会指着%或*表示填充哪个%lld %lld %lld ^1 ^2 ^3 %.2lf / %.*lf %.3lf ^1 ^3^2 ^4代码#includestdio.hintmain(){doublea12.00;doubleb3.00;printf(%.2lf %.2lf %.2lf\n,a,b,ab);printf(%.2lf - %.2lf %.2lf\n,a,b,a-b);printf(%.2lf * %.2lf %.2lf\n,a,b,a*b);printf(%.2lf / %.2lf %.2lf\n,a,b,a/b);}/* 最终输出 12.00 3.00 15.00 12.00 - 3.00 9.00 12.00 * 3.00 36.00 12.00 / 3.00 4.00 */3.scanf的使用方法scanf是格式化输入Scan Format。如果你成功弄清了printf的使用方法那么这个语法将会十分的简单。它和printf在同一个库中同样的它会有%hd%d%ld%lld一类的整型输入也会有%f%lf%Lf一类的浮点数输入。而精度、位宽、不定精度之类的就不用了也没有这种语法。不一样的是后面接的必须是变量且变量前要加上一个例如上一个用于举例printf的代码如果a和b由控制台输入决定且输入时两个数间用 分开那么就可以这么写#includestdio.hintmain(){doublea,b;scanf(%lf %lf,a,b);printf(%.2lf %.2lf %.2lf\n,a,b,ab);printf(%.2lf - %.2lf %.2lf\n,a,b,a-b);printf(%.2lf * %.2lf %.2lf\n,a,b,a*b);printf(%.2lf / %.2lf %.2lf\n,a,b,a/b);}/* 输入 12.5 0.618 输出 12.50 0.62 13.12 12.50 - 0.62 11.88 12.50 * 0.62 7.72 12.50 / 0.62 20.23 */