鱼C论坛

 找回密码
 立即注册
查看: 4746|回复: 4

在小甲鱼C语言第九课中的问题

[复制链接]
发表于 2013-1-27 23:17:55 | 显示全部楼层 |阅读模式
10鱼币
第一个求三角形面积
# include <stdio.h>
# include <math.h>
int main (void)
{
double a, b, c, s, area;
scanf("%lf %lf %lf", &a, &b, &c);
s = (a+c+b) / 2.0;
area = sqrt(s*(s - a)*(s - b)*(s - c));
printf("a = %7.2g,b = %7.2g,c = %7.2g,s = %7.2g,area = %7.2lf\n", a, b, c, s, area);
return 0;
}


请问 我吧 %7.2g  改成了 %7.2f    输出的结果是 a=3.00    然后我又改成了, %3.2f 结果还是一样 但改成%7.3f 结果是 a = 3.000

- -求解释  那个 %7.2f  与 %3.2f  7 与3都无关吗?  只与小数有关吗?  

最佳答案

查看完整内容

小数点前的数字代表输出数据显示的宽度,小数点后面的数字代表输出数据保留小数的位数。故.2代表保留两位小数,加上整数一格,小数点一格,所以总共显示占用4个字符。7.2f在数字前面补了3个空格来凑足宽度后输出。3.2输出则因为超出宽度限制,按原样直接输出。所以输出是有区别的:分别是“ 3.00”和“3.00”
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-27 23:17:56 | 显示全部楼层
本帖最后由 星殇天辰 于 2013-1-28 08:01 编辑

小数点前的数字代表输出数据显示的宽度,小数点后面的数字代表输出数据保留小数的位数。故.2代表保留两位小数,加上整数一格,小数点一格,所以总共显示占用4个字符。7.2f在数字前面补了3个空格来凑足宽度后输出。3.2输出则因为超出宽度限制,按原样直接输出。所以输出是有区别的:分别是“   3.00”和“3.00”
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-2 15:14:45 | 显示全部楼层
............................................................闷闷闷闷闷闷闷闷闷闷闷闷闷闷闷闷
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-21 20:43:26 From FishC Mobile | 显示全部楼层
printf("a = %7.2g,b = %7.2g,c = %7.2g,s = %7.2g,area = %7.2lf\n", a, b, c, s, area);
这里为什么是%7.2g而不是%7.2f?  g是什么型?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-9-14 00:36:42 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-8 18:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表