鄙人C语言小白一枚,步履蹒跚地踏上了C语言学习的旅途,旅途景色新奇却也难免有曲折坑洼。小记旅途的艰难险阻,愿帮更多小白顺畅踏上旅途。

一.四舍五入

鄙人在做C语言练习题时,常常会在数据的”四舍五入“上出现问题。

1.需不需要四舍五入?

C语言取整常见两种情况:

1)整数除法运算时会自动取整

2)控制浮点型输出的小数点位数

那么问题来了,二者的进位情况是什么样的呢?

#include <stdio.h>
#include <stdlib.h>int main()
{int a=5,b=3;double c=5.0,d=3.0;printf ("%d\n",a/b);printf ("%f\n",c/d);printf ("%.0f\n",c/d);printf ("%.2f\n",c/d);return 0;
}

我们不难看出

1)整型相除时会直接舍弃掉小数部分。

2)而浮点数进行除法运算时,会根据保留的位数进行四舍五入。

2.其他的四舍五入的办法?

比如我现在通过计算得到了一个浮点型数据,但我并不想直接输出,而是需要让它四舍五入后参与后续运算,该怎么做呢?

网上有很多方法,但作为小白我还是推荐这个方法:

(int)(num+0.5)

加0.5的原因就是:假如这个小数位的数值大于5,加上0.5能够实现进位的作用,倘若小于0.5,就没有实现进位的作用。而由于类型转换时会自动舍弃小数部分,所以可以直接加上0.5后进行判断。

#include <stdio.h>
#include <stdlib.h>int main()
{int a=5,b=3,c=2;printf("%d\n",(int)(a/b+0.5));printf("%d\n",(int)(a/c+0.5));
}

运行结果如下:

这样就实现了对浮点数的四舍五入。

二.整型与浮点型的加减与大小比较

对于不少人来说,这貌似是常识性问题,但我相信在这里犯迷糊的人肯定不止我一个。

1.整型和浮点型可以直接加减吗?

答案是:可以。

#include <stdio.h>
#include <stdlib.h>int main()
{double a=5.5;int b=3;printf("%d\n",a+b);printf("%f\n",a+b);
}

输出结果如下:

这里就涉及到自动类型转换的问题。

1)有浮点型参与运算得到的结果一定是浮点型;

2)占位符不可以进行类型转换;

3)低优先级会被高优先级同化。

数据优先级:double>float>int>char

接下来以这三个标准来进行分析上述代码。

Ⅰ.因为有浮点型参与了运算(无论加减乘除),所以结果被自动转换成了浮点型

Ⅱ.由于占位符无法进行数据类型转换,数据类型不同,输出异常。

Ⅲ.而"%lf"对应浮点型,可以正常输出。

2.整型和浮点型可以比较大小吗?

答案仍然是:可以。

可以简单理解在比较大小时整型被扩展成了浮点型。但注意尽量不要这样比较,因为浮点型会存在精度误差,即计算机无法准确存储浮点型。

三.取出数字中的各位数

这是个没什么用的小。。。技巧?

“%10”可以理解为取出最后一位数

“/10”可以理解为去除最后一位数

例如

1234%10 就是拿出4;

1234/10就是去掉4,剩下的数就是123.

这只是因为我前期老是不懂取余以及除法操作才想出来的笨法。。。

途间闲话

实话实说,C语言入门我真的感觉不容易,我是大学之前完全没接触过C语言,身边很多C语言大佬都表示C语言怎么怎么简单好学,可能确实是因为我太菜了吧(悲)。学校的课程进度飞快,很多细节根本不讲,所以我真的就是在一点点做题去摸索,犯了无数低级的错误,但我还是一直坚持着,并且默默的记录着自己犯错误的那些小点,希望能帮帮那些和我一样从入门就感觉困难的萌新吧~愿我们一起努力,干掉C语言!

秣小白的C语言旅程——第一站相关推荐

  1. 秣小白的C语言旅程——第二站(含自我介绍)

    鄙人C语言小白一枚,步履蹒跚地踏上了C语言学习的旅途,旅途景色新奇却也难免有曲折坑洼.小记旅途的艰难险阻,愿帮更多小白顺畅踏上旅途. 一.四舍五入2.0 在我回顾自己做过的C语言入门题中,发现了这样一 ...

  2. 速通C语言支线第一站 基础刷题

    系列文章目录 速通C语言支线第一站 基础刷题 文章目录 系列文章目录 前言 一.进制类 1 打印8.16进制 2 16进制转10进制 3 进制转换类 推论:一个数二进制位有几个1 变式:判断n是否是2 ...

  3. 初识C语言:小白学习C语言的第一周记录

    目录 1.个人情况说明于学习期待 2.学习资源的分享 3.学习C语言的准备工作和本周学习的知识 个人情况说明和学习期待 我是一名大学生新人,因为高中时期有幸接触到了机器人比赛,从此深深地热爱上了计算机 ...

  4. Python-turtle绘画旅程第一站:哆啦a梦

    本次绘画主要用到的库是turtle(海龟绘图),主要用到的函数是circle(画圆).fillcolor(填充颜色).forward(画线)等.具体用到的函数在代码中都有注释. 铛铛铛铛!!!先给大家 ...

  5. 打怪升级之小白的大数据之旅(六十一)<Hive旅程第二站:Hive安装>

    打怪升级之小白的大数据之旅(六十一) Hive旅程第二站:Hive安装 上次回顾 上一章我们学习了Hive的概念以及框架原理,本章节是对Hive的安装进行分享,因为它有些需要自己配置的点,所以我单独开 ...

  6. 【C语言航路】第一站:初识C语言(四)

    目录 十一.关键词 1.常见关键词总结及分类 (1)类型 (2)循环 (3)选择分支 (4)其他 2.关键词register 3.关键词typedef 4.关键词static (1)修饰局部变量 (2 ...

  7. 在B站学习C语言的第一天

    今天是在B站跟鹏哥学习C语言的第一天,我是一名准大二的学生,利用暑假时间跟随鹏哥学习C语言,充分自己的知识,充实自己的生活. 今天学习了鹏哥的第一门课程: 1.初识C语言 这节课程首先为我们介绍了C语 ...

  8. c语言编程输出皮卡丘,c语言001第一节课程-函数方式输出皮卡丘画 2019-06-24

    c语言001第一节课程-函数方式输出皮卡丘画 2019-06-24 小白的我自己C语言学习写了一段程序,利用printf()函数输出一个皮卡丘的字符画,只想记录一下学习过程. 源代码如下 #inclu ...

  9. 零基础玩转C语言系列第一章——初始C语言(上)

    目录 一.如何学好C语言? 1.鼓励你,为你叫好. 2.挤时间学习 3.学好编程,不仅仅是学好C语言 二.初始C语言 本章目标 本章重点 1.什么是C语言? 2.第一个C语言程序 3.数据类型 4.变 ...

最新文章

  1. CSS中怎么让DIV居中
  2. java版b2b2c社交电商spring cloud分布式微服务(五)springboot整合 beatlsql
  3. Android studio ButterKnife插件
  4. 怎么把ide改成ahci_如何将硬盘由IDE模式修改为AHCI模式,我的主板是华硕P8Z68-VLX,请高手帮帮忙。...
  5. Simulink仿真 第七节 关系运算符及逻辑运算符模块
  6. html5和响应式,35个响应式HTML5和CSS3模版
  7. 小米开源文件管理器MiCodeFileExplorer-源码研究(3)-使用最多的工具类Util
  8. 将excel转为python的字典_python读取excel表并把数据转存为字典
  9. 闪退mac_幕布闪退怎么办?别着急看这里
  10. 做系统ghost步骤图解_掌握这几个步骤电脑小白也会做系统
  11. 佳能c3020维修模式 白电平调整_真·迷你微单 佳能EOS M200简评
  12. 03惯性导航系统误差分析
  13. Shiro 实现记住我功能
  14. 用PySimpleGui做户籍资料查询工具
  15. 软件工程——数据流图
  16. Android 列表视图制作古诗词
  17. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
  18. oracle 内存错误的是什么意思,java - 是什么导致此JMS错误连接到OracleAQ? - 堆栈内存溢出...
  19. python中delay__Python time delay
  20. 【python函数】

热门文章

  1. 2018程序员拜年的奇思妙想,涨姿势了
  2. Ubuntu 16.04安装安装iBus中文输入法
  3. 剪切caspase3_Caspase-3活性检测
  4. oracle dul 扫描磁盘,dul oracle 数据恢复
  5. 解决mysql 服务无法启动问题:Can't find messagefile 'D:\ ools\mysql-5.6.25-winx64\share\errmsg.sys'...
  6. 聚观早报 | 网传每日优鲜「就地解散」;支付宝一键取消自动扣款
  7. GitHub下载加速利器
  8. 某型发动机整机测试研究
  9. redis工具 :springboot使用redis
  10. 华清远见重庆中心——HTML和CSS基础阶段技术总汇