C语言易混淆的几点,初学者必看!帮你提升写代码效率。

 C语言初学者的你是否有这样的经历?

   写几行代码就要对着笔记检查一遍;或者不看笔记就记不起,容易混淆相似点;亦或是笔记不全......导致写代码效率低下

   不过不要慌,小编在这里整理了一些零碎的知识点,耐心看完,一定对你有帮助。

一.数据类型和对应 printf 函数打印所需 "%  "后的内容

1.数据类型

  • char           字符数据类型
  • short          短整型
  • int              整型
  • long           长整型
  • long long   更长的整型
  • float           单精度浮点数
  • double       双精度浮点数

2.对应 printf 函数打印所需 "%  "后的内容

  • %d  -  打印十进制的整数 (通常与 int 匹配)
  • %c  -  打印字符
  • %s  -  打印字符串
  • %f  -  打印 float 类型的浮点数

      (1) 这里值得注意的是:%f  会默认打印6位小数   

      如果想要控制小数位数,用 %.f     (千万不能忘记 % 后的 "." !!!)

                     例如:想保留2位小数      

  • %lf  -  打印 double 类型的浮点数   
  • %zd  -  打印无符号整型,专门用来打印 sizeof 函数
  • %p  -  打印地址
  • %ld  -  与长整型 long 相匹配
  • %lld  -  与 long long 相匹配

      (2) %ld %lld 和 %d 相似,那什么时候用 %ld %lld 呢?

   %d 通常与 int 相匹配,而用 int 定义的变量,打印时最大只能打印到20亿左右。当输出结果大于这个值时,打印出的往往是错误的结果。例如:

      

  当我们输入小数字,结果正确。

  如果数字大一些呢?比如,输入100000,正确结果应该是 5000050000(>20亿)

可是输出结果显然错误。

  怎么解决?用 %lld 

二.多组输入问题

题目:假设智商 >140 是 Genius ,多组输入一个值表示智商,判断其是不是 Genius 。

如果你和小编一样,刚开始成这样,会发现只输入一个值,按回车,程序就结束了。无法多组输入

怎么解决呢?  借助 while 循环。  当然要知道以下3个知识点:

  • scanf 函数返回的是:实际读到数据的个数
  • scanf 函数读取失败的时候,返回 EOF
  • EOF - end of file 文件结束标志

只需记住下面两种写法:

怎么结束程序呢?  按 Ctrl + Z 。(有的编译器可能要多按几遍。比如 VS 2022 需要按三遍)

三.判断条件想输入区间 怎么办?

想根据年龄判断一个人是否为青年,假设年龄18~36 是青年。

直接用数学方法写吗?

显然,结果不是我们想要的。难道是编译器出错了?其实不然。

原因:18 <= 2 为假,变成0         而 0 <= 36 为真,就打印了。

怎么解决? 用 逻辑操作符 &&与  | | 或

四.除法如何打印小数

这里要用到算数操作符 :/ 除号     

  • / 两端如果都是整数,执行的是整数除法,结果是
  • / 两端至少有一个是浮点数,才能执行浮点数除法

本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注

小编会以自己学习过程中遇到的问题为素材,持续为您推送文章。

如果有建议欢迎在评论区或私信留言,小编才能发布更优秀的文章。感谢您的大力支持。