c语言中 %f %1f %2.3f 有什么区别

作者&投稿:欧阳媚 (若有异议请与网页底部的电邮联系)
C语言中 %f 与 %1f 区别~

%1f -- 你用了数字1,不是字母L的小写.
这个1的意思是输出/入总位数为1位

float a,b;
scanf("%1f %f",&a,&b);
输入
12.345 67.8
a 读 1, b读 2.345, 而后的67.8留在输入缓冲器里.
printf("%f %f",a,b);
1.000000 2.345000

输出用%1f,宽度不够,程序会自动加宽,输出结果与%f 一样.

%lf
和%f
的区别为:输入不同、输出不同、精度损失不同。
一、输入不同
1、%lf
:%lf
输入数据时要求是float类型。
2、%f
:%f
输入数据时要求是double类型。
二、输出不同
1、%lf
:double类型以%lf
格式输出数据时不会自动转成%lf
格式,会导致输入值错误。
2、%f
:float类型以%f
格式输出数据时会自动转成%f
格式,不会导致输入值错误。

三、精度损失不同
1、%lf
:单精度数据使用%lf
格式会造成精度损失。
2、%f
:双精度数据使用%f
不会造成精度损失。

printf函数(格式输出函数)

 

1.一般格式

printf(格式控制,输出表列)

例如:printf("i=%d,ch=%c\n",i,ch);

说明:

(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:

①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。

②普通字符,即需要原样输出的字符。

(2)“输出表列”是需要输出的一些数据,可以是表达式

(3)printf函数的一般形式可以表示为

printf(参数1,参数2,……,参数n)

功能是将参数2~参数n按参数1给定的格式输出

2.格式字符(9种)

(1)d(或i)格式符。用来输出十进制整数,有以下几种用法:

①%d,按整型数据的实际长度输出。

②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

③%ld(%mld 也可),输出长整型数据。

例如:long a=123456;

printf("%ld",a);

 

(2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。

(3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。

(4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。

参见:li4-3.c

(5)c格式符,用来输出一个字符。格式:%c,%mc都可。

(6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。

参见:li4-5.c

(7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。

注意:单精度实数的有效位数一般为7位,双精度为16位。

参见:li4-6.c

li4-7.c

li4-8.c

(8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。

(9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。

3.说明

(1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;

(2)“格式控制”字符串内可以包含转义字符;

(3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:

printf("%f%%",1.0/3);

(4)格式字符表参见下表

 

表4.1 printf格式字符

格式字符 说 明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f 以小数形式输出单、双精度数,隐含输出6位小数
e,E 以指数形式输出实数
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0

 表4.2 printf的附加格式说明字符

字符
说明

字母l
用于长整型整数,可加在格式符d、o、x、u前面

m(代表一个正整数)
数据最小宽度

n(代表一个正整数)
对实数,表示输出n位小数;对字符串,表示截取的字符个数

(二)
c语言不提供输入输出语句,输入输出操作是由c的库函数完成。但要包含头文件stdio.h。 putchar( ) 向终端输出一个字符 printf( )的格式字符: ① d格式符 用来输出十进制整数 %d 按整型数据的实际长度输出 %md 使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度 %ld 输出长整型数据 ② o格式符 以八进制形式输出整数 ③ x格式符 以十六进制形式输出整数 ④ u格式符 用来输出unsigned型数据,以十进制形式输出 ⑤ c格式符 用来输出一个字符 ⑥ s格式符 输出一个字符串 %s 输出实际长度字符串 %ms 输出的串占m列,如果串长度小于m,左补空格,如果大于m,实际输出 %-ms输出的串占m列,如果串长度小于m,右补空格, %m.ns 输出占m列,但只取字符串中左端n个字符并靠右对齐 %-m.ns m、n含义同上,靠左对齐,如果n>m,则m自动取n值 ⑦ f格式符 以小数形式输出实数 %f 整数部分全部输出,小数部分输出6位 %m.nf 输出数据共占m列,其中有n位小数。如果数值长度小于m,左补空格 %-m.nf 同上,右补空格 ⑧ e格式符 以指数形式输出实数 %e 系统指定6位小数,5位指数(e+002 ) ⑨ g格式符 输出实数,根据数值大小,自动选f格式或e格式
3.数据输入 getchar( ) 从终端输入一个字符 scanf( 格式控制,地址列表) 标准C scanf中不使用%u,对于unsigned型数据,以%d或%o或%x输入。%后的*,用来跳过它相应的数据。输入数据时不能规定精度如scanf( "%7.2f", &a );是不合法的。

%1f
--
你用了数字1,不是字母L的小写.
这个1的意思是输出/入总位数为1位
float
a,b;
scanf("%1f%f",&a,&b);
输入
12.345
67.8
a

1,
b读
2.345,
而后的67.8留在输入缓冲器里.
printf("%f
%f",a,b);
1.000000
2.345000
输出用%1f,宽度不够,程...


语言中都有什么词性
Ⅰ、分类:实词:表示实在意义的词,有名词、动词、形容词、数词、量词、代词。 虚词:不表示实在意义而表示语法意义的词,有:副词、介词、连词、助词、叹词、拟声词。 Ⅱ、辨析: 1.)名与动、形的区别: A.名词不能重叠。(少数除外 如:人人、时时、处处、事事、家家、上上下下、前前后...

一些有关C语言中实用且很牛的技能!
这在Mozi训la的源码中经常用到,我就是在那时学到这个技巧的。 例如,在我去年夏天工作的那个项目中,我们有一个针对每个命令进行标记的宏列表。它定义了一个FLAG_LIST宏,这个宏有一个参数称之为这个参数本身是一个宏,它能够调用列表中的每个参数。 五、编译时断言 这其实是使用C语言的宏来实现的非常有“创意”...

一语言中是什么意思
言读音:yán 释义:1、讲,说:言说。言喻。言道。言欢。言情。言必有中。2、说的话:言论。言辞。语言。言语。言简意赅。3、汉语的字:五言诗。七言绝句。洋洋万言。4、语助词,无义:言归于好。“言告师氏,言告言归”。5、姓。成语有:【成语】: 言之有故。【拼音】: yán zhī ...

C语言中const的那些细节与妙招
C语言中const的那些细与妙招 01、const在C和C++中 假如把const修饰的名称视为常量,那么其作为数组大小设置应该能够通过编译才对,而在DV下编译得到如下结果:Message[Error]variably modified 'array'at file scoperecipe for target 'main.o'failed。 02、const修饰全局与局部 既然const是一个只读变量,是变量就应该会...

语言学中,phone、phoneme、allophone 分别指什么?
(Phone:最小发声单元)Phone,音符般的存在,是语音学中的最小单位,代表着单一的发音现象或一个发音特征。它的标记方式独特,用中括号环绕,如[b]、[p]、[n]、[t͡ʃ]、[i]、[œ]等,它们如同音符谱写出语言的旋律。(Phoneme:区别性音位)Phoneme,这个概念则更深入一层,...

各种语言中"中国"的单词
德语: China [中]希腊语: Κίνα 英语: China 世界语: Ĉinio, Ĉinujo, Ĥinujo 西班牙语: China [阴]爱沙尼亚语: Hiina, Hiina Rahvavabariik 波斯语: چین (čīn)芬兰语: Kiina, Kiinan kansantasavalta 法语: Chine [阴]希伯来语:...

如何看待中英语言文化中的词汇差异?
下面举一些英汉两种语言中这种"貌合神离"、"似是而非"的现象(speciosity)。 1、指"处所"、"机构"等的词语:fire company≠纵火公司,恰恰相反,其意思是"消防队"。high school≠高等学校,指美国的中学;在英国,中学叫secondary school。service station≠服务站,是给汽车加油及进行简单维修的地方。rest room≠休息...

网络语言中的“墨迹”是啥意思?
网络语言中的“墨迹”是啥意思?这个梗的含义:本来是磨叽,东北方言,人家非常着急而你慢腾腾的。另指说话啰嗦。这个梗的来源:墨迹(磨叽)源自满语,这个词主要是东北人使用。东北,白山黑水一方是满族的“龙兴之地

网络语言中的CP是什么意思
现也指动画、影视作品粉丝自行将片中角色配对为同性或异性情侣,有时也泛指两人之间的亲密关系,表示人物配对的关系。 而CP粉就是某组假象情侣的粉丝,他们喜欢把自己喜欢的两个明星想象成情侣的关系,特别希望剧中的一对也成为现实中的情侣。这其中,很多人原本只喜欢一个明星后来莫名其妙喜欢上这个人的绯闻男\/女朋友...

网络语言中的BF是什么意思?
另外,bf有时候还会在网络游戏中被使用,意思是占地系列。 这个梗的来源: 由于自由恋爱的发展,男朋友在人们心中的概念也从单一的男生朋友发展到了做“丈夫”之前的对象的代名词。大部分人对“男朋友”的理解都是"他是你有恋爱关系的男生',可是把你的男性朋友说成是你的男朋友也不为过,因为现在人都开放了,男女之...

印江土家族苗族自治县13137094986: c语言中%f,%d的区别 -
单于郝曲腾: 1、%d,d格式字符.用来输出十进制整数,按整型数据的实际长度输出. 2、 %f ,用来输出实数(包括单双精度),以小数形式输出. C语言中对于不同类型的数据用不同的格式字符,这两个都是printf函数格式字符. 扩展资料 u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出. c格式符,用来输出一个字符. s格式符,用来输出一个字符串. f格式符,用来输出实数(包括单双精度),以小数形式输出. e格式符,以指数形式输出实数. g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零. 参考资料:格式字符_百度百科

印江土家族苗族自治县13137094986: C语言中%f是什么意思?
单于郝曲腾: %f是浮点数的格式符,它所定义的是浮点型数据

印江土家族苗族自治县13137094986: 在C语言中,%f是什么意思? -
单于郝曲腾: %f 是格式控制,f表示float类型的数据 例如: ("%f",n); 表示输出float类型的变量n的值.

印江土家族苗族自治县13137094986: c语言中的%f是什么意思? -
单于郝曲腾: 用在输入输出语句中,表示浮点型数据. #include int main() { float a=5.47f; printf("a=%f\n ", a); // %f会用a的值代替 printf("input a float number:"); scanf("%f", &a); // 输入的数据会以浮点型存到a中. printf("a=%f\n ", a); // %f会用a的值代替 return 0; }

印江土家族苗族自治县13137094986: C语言中 %f 是几位小数?一位可以吗(1.7)? -
单于郝曲腾: 可以啊,要确定几位小数保持格式如五位小数只需要写成%.5f就行了(⊙_⊙)

印江土家族苗族自治县13137094986: 在C语言中,%d,%c,%f,%e分别是什么意思? -
单于郝曲腾: %d是以十进制整型的格式输出. %c是以单个字符的格式输出. %f是以单精度型的格式输出. %e是以指数的形式输出. C语言中,输入输出的格式为:输入输出符号("<格式化字符串>", <参量表>),格式化字符串由格式控制、和输出表...

印江土家族苗族自治县13137094986: C语言中什么时候用%d和%f -
单于郝曲腾: %d和%f都是格式化输出,用来指明输出的数据类型.%d表示要输出一个整型值,%f表明要输出一个浮点型值.比如下面的语句: int a=10; float b=3.14; printf("a=%d",a);//这里要输出a,a是整型值,所以用%d; printf("b=%f",b);//这里要输出b,b是浮点型,所以用%f.

印江土家族苗族自治县13137094986: 在计算机c语言中%f和%1f有什么区别 -
单于郝曲腾: %1f -- 你用了数字1,不是字母L的小写. 这个1的意思是输出/入总位数为1位float a,b; scanf("%1f %f",&a,&b); 输入 12.345 67.8 a 读 1, b读 2.345, 而后的67.8留在输入缓冲器里. printf("%f %f",a,b); 1.000000 2.345000输出用%1f,宽度不够,程序会自动加宽,输出结果与%f 一样.

印江土家族苗族自治县13137094986: C语言中%*f的用法 -
单于郝曲腾: 你这样写 有歧义 1 sacnf("%*f%f",&a);//%*f是获取一个浮点数 但是这个浮点数不会传递给后面的变量 这里你输入 3.00[空格]11.0[回车] 变量a获取的值是11.02 %*f 其中的*是代指一个数字 比如 %5.2f 这种类型的 这里的5.2是指 输出的浮点数连同小数点在内最少[注意是最少]会输出5位 其中有2位小数 比如 0.1 会输出 [空格]0.10 一共5个位 比如 1234.1345 会输出 1234.13 可以超过5位 小数固定是2位 注意 以上的例子是 %5.2f 然后%5.2f只能用于printf 函数 scanf函数就不可以这样写 可以指定读取几位 但是不能出现小数点

印江土家族苗族自治县13137094986: 在C语言中%f的输出形式指的是什么?保留6位还是7位小数? -
单于郝曲腾: %f :以浮点型数据形式输出,浮点型也就是实数.一共保留6位小数.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网