鱼C论坛

 找回密码
 立即注册
查看: 1416|回复: 9

[已解决]S1E4 课后练习

[复制链接]
发表于 2018-9-2 22:32:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.为什么2015用double,但是3.1415就用了float
2.%10e和%-10E的含义
3.%后面的字母大小写有区别吗,比如%d %D,%e %E
最佳答案
2018-9-2 22:49:24
1. 不知道你要问什么,double 可以存 float 与 int,没有不可以
2. 大小写没有关系,科学记号显示 e 或 E 而已,但是前面有符号是左对齐;10 是不管这数字的大小,以 10 个字符的宽度显示。上机就清楚了。
e        3.9265e+2
E        3.9265E+2

0123456789
213                 左对齐
            213     右对齐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-2 22:49:24 | 显示全部楼层    本楼为最佳答案   
1. 不知道你要问什么,double 可以存 float 与 int,没有不可以
2. 大小写没有关系,科学记号显示 e 或 E 而已,但是前面有符号是左对齐;10 是不管这数字的大小,以 10 个字符的宽度显示。上机就清楚了。
e        3.9265e+2
E        3.9265E+2

0123456789
213                 左对齐
            213     右对齐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 01:53:08 | 显示全部楼层
claws0n 发表于 2018-9-2 22:49
1. 不知道你要问什么,double 可以存 float 与 int,没有不可以
2. 大小写没有关系,科学记号显示 e 或 E  ...

那么大佬就是可以把小甲鱼里的%f改成%d是ok的但是浪费资源对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-3 02:01:43 | 显示全部楼层
Somnr丶风 发表于 2018-9-3 01:53
那么大佬就是可以把小甲鱼里的%f改成%d是ok的但是浪费资源对吧

不可以,数据类型要一致,会报错的。那个要强制转型。
scanf() 最明显的。

double a;
scanf("%lf", &a);  //ok             scanf("%f", &a);       //无效的输入
是浪费了一点,不过你不是在面对单片机吧?没有必要计较这些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 02:17:53 | 显示全部楼层
claws0n 发表于 2018-9-3 02:01
不可以,数据类型要一致,会报错的。那个要强制转型。
scanf() 最明显的。

双精度浮点和单精度浮点的理解不太清楚- -大佬解释一下嘛,就是什么时候用%d,什么时候用%f
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 02:21:57 | 显示全部楼层
claws0n 发表于 2018-9-3 02:01
不可以,数据类型要一致,会报错的。那个要强制转型。
scanf() 最明显的。

大佬有没有那种表格之类的可以显示%加各种英文的用法的= =
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-3 02:29:07 | 显示全部楼层
Somnr丶风 发表于 2018-9-3 02:17
双精度浮点和单精度浮点的理解不太清楚- -大佬解释一下嘛,就是什么时候用%d,什么时候用%f

printf() scanf() 看针对什么数据类型用不同的格式
int  -> %d
long  -> %l       //是小写的 L
float -> %f
double ->%lf  (long float)

单精度、双精度基本上一样,目前来说 float 就够用了,差别是小数点可以精确到几位数。好像是 7 跟 15 位小数的差别,你需要这样精确的数字吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-3 16:37:39 | 显示全部楼层
claws0n 发表于 2018-9-3 02:29
printf() scanf() 看针对什么数据类型用不同的格式
int  -> %d
long  -> %l       //是小写的 L

好的,int就是单字符,float是浮点型,然后double就是长一点的浮点型,这样理解没问题吧,那么long是啥- -%long是啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-3 16:47:28 | 显示全部楼层
Somnr丶风 发表于 2018-9-3 16:37
好的,int就是单字符,float是浮点型,然后double就是长一点的浮点型,这样理解没问题吧,那么long是啥-  ...

其实差别在于内存用几个字节存储(一个字节为 8 位元)
char 才是字符(其实也是整型)   一个字节
short 短整型                               两个字节
int 是整型(整数)                      四个字节
long 长整型                                四或八个字节(看系统与编译器)

四个字节与八个字节的差别在哪里?最大数。作业不是有一个 limit 的吗?去看看~
unsigned int 2^31 - 1         到 31 次方
unsigned long 2^63 - 1       到 63 次方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-4 08:12:08 From FishC Mobile | 显示全部楼层
printf格式化输出函数可以查看小甲鱼老师在带你学习带你飞版块里的https://fishc.com.cn/forum.php?mod=viewthread&tid=66471&extra=page%3D1&mobile=2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 17:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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