相信你是最棒哒!!!
一、运用printf函数格式化输出
打印格式及含义:
printf 附加格式:
二、题目示例
1.体脂率问题:
题目代码:
2. 甲流疫情死亡率
题目代码:
总结
提示:以下是本篇文章正文内容,下面案例仅供参考
printf
函数格式化输出%hd 输出 short 类型,short int 短整数
%d 输出 int 类型, int 接受整数值并将它表示为有符号的十进制整数
%ld 输出 long 类型
%lld 输出 long long 类型
%hu 输出 unsigned short 类型, 无符号短整数
%u 输出 unsigned int 类型, 无符号 10 进制整数
%lu 输出 unsigned long 类型
%llu 输出 unsigned long long 类型
%o 输出unsigned int 无符号 8 进制整数
%x,%X 输出unsigned int 无符号 16 进制整数,x 对应的是 abcdef,X 对应的是
ABCDEF
%f 输出float 单精度浮点数
%lf 输出double 双精度浮点数
%e,%E 输出double 科学计数法表示的数,此处"e"的大小写代表在输出时用
的"e"的大小写
%c char 字符型。可以把输入的数字按照 ASCII 码相应转换为对应
%s char * 字符串。输出字符串中的字符直至字符串中的空字符(字
符串以'\0‘结尾,这个'\0'即空字符)
%p void * 以 16 进制形式输出指针
%% 输出一个百分号
l(字母 l) :附加在 d,u,x,o 前面,表示长整数
-(负号): 结果左对齐,右边填空格
m(代表一个整数) 数据最小宽度
0(数字 0) 将输出的前面补上 0 直到占满指定列宽为止不可以搭配使用-(负号)
m.n(代表一个整数) :m 指域宽,即对应的输出项在输出设备上所占的字符数。n 指精
度,用于说明输出的实型数的小数位数。对数值型的来说,未指定 n 时,隐含的精度为 n=6 位。
+ 输出符号(正号或负号)
空格 输出值为正时冠以空格,为负时冠以负号
#在某些情况下输出一个前缀:
%o
:八进制数。当#
被使用时,printf
会在输出的八进制数前加上前缀0
,表示这是一个八进制数。
printf("#%o\n", 10); // 输出:01124
%x
或 %X
:十六进制数。当#
被使用时,printf
会在输出的十六进制数前加上前缀0x
或0X
,表示这是一个十六进制数。
printf("#%x\n", 255); // 输出:0xff
printf("#%X\n", 255); // 输出:0XFF
%a
或 %A
:十六进制浮点数(C99标准)。#
标志对这些格式说明符的影响类似于%x
和%X
,会加上0x
或0X
前缀。
printf("#%a\n", 3.14159); // 输出:0x1.92e9f4p+1
printf("#%A\n", 3.14159); // 输出:0X1.92E9F4P+1
对于其他格式说明符,如%d
、%u
、%f
等,#
标志没有影响。使用#
标志可以帮助提高输出的可读性,特别是在调试程序时,能够清晰地识别出数字的类型。
BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 ℎ2h2m,其中 m 是指体重(千克),ℎh 是指身高(米)。不同体型范围与判定结果如下:
Underweight
;Normal
;cout
的默认精度),然后换行,还要输出 Overweight
;现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。
对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 00,不要输出后缀 00。
请注意,保留六位有效数字不是保留六位小数。例如 123.4567123.4567 应该输出为 123.457123.457,5432.105432.10 应该输出为 5432.15432.1。
共一行。
第一行,共 22 个浮点数,,ℎm,h,分别表示体重(单位为 kg),身高(单位为 m)。
输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight
情况的特别处理请参照题目所述。
输入
70 1.72
输出
Normal
输入
100 1.68
输出
35.4308 Overweight
对于所有数据,40≤≤12040≤m≤120,1.4≤ℎ≤2.01.4≤h≤2.0。m 和 ℎh 的小数点后不超过三位。
#include
#include
int main()
{
double m, h, bmi;
scanf("%lf%lf", &m, &h);
bmi = m / (h * h);
if (bmi < 18.5)
printf("Underweight");
else if (bmi >= 18.5&&bmi<24)
printf("Normal");
else if (bmi >= 24)
{
printf("%.6g\n", bmi);
//%.6g格式说明符表示输出一个浮点数,保留六位有效数字。
g格式会自动选择f或e格式,以获得更紧凑的输出,并去除不必要的尾随零。
printf("Overweight\n");
}
return 0;
}
输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
10433 60
0.575%
输出%可以使用printf(“%%”);
#include
int main()
{
int a,b;
double c;
scanf("%d %d",&a,&b);
c=(double)b/(double)a;
printf("%.3f%%",c*100);
//输出百分数
return 0;
}
本文介绍了C语言中如何使用printf
函数进行格式化输出,包括不同类型的格式说明符及其附加格式选项。通过两个实际编程题目——体脂率问题和甲流疫情死亡率计算,展示了如何应用这些知识来解决具体问题。文章强调了在输出时保留六位有效数字的重要性,并提供了相应的代码示例,帮助读者更好地理解和掌握C语言中的格式化输出技巧。