C语言在输入输出时遇到的常见问题总结

C语言在输入输出时遇到的常见问题总结

目录

一、前言

二、取整的方法

(1)使用 int 强制转换

(2)使用floor函数向下取整

(3)使用ceil函数向上取整

三、数值四舍五入

(1)使用round函数进行四舍五入

(2)使用rint函数进行四舍五入

(3)重点应用

四、在C中输出%d、%0xd、%-xd的输出格式

五、除法:余除 % 、整除  /

五、连续输出

一、前言

大家好,我是一个初学C语言的小菜狗,是否大家在平时的做题中会遇到和我一样的烦恼,题目的代码已经基本完成,但是在输出时候,总是和题目给出的样例输出格式不同 ,导致题目不能通过。为了解决这一烦恼,我总结了以下几点:数值取整问题、数值四舍五入、输出%d格式、除法%、除法 / 、连续输等知识点。

二、取整的方法 (1)使用 int 强制转换

若输出的结果有小数,可以使用 int 强制去掉整数后面的小数点。代码如下:

#include <stdio.h> int main() { int c = 1.2; c = (int)c; // 强制转换 float a,b; a = 1.2f; // 1.2f 这里的 f 是保证数值为float型,防止默认为 double型 b = (int)a; // 强制转换 printf("%f\n", a); // 1.200000 printf("%f\n", b); // 1.000000 printf("%d\n", c); // 1 return 0; } (2)使用floor函数向下取整

若输出的结果有小数,可以使用 floor 函数,可以得到比该数小的最大整数,代码如下:

// 注意:在使用floor函数时,需要加上头文件 #include <math.h> #include <stdio.h> #include <math.h> int main() { int a ; float c = -1.2f; float b=1.2f; int d = -1.2; // 注意: d 的类型为int型 已经被int 强行转化为 -1 a = floor(1.3); // 函数向下取整,得到比 a 小的最大整数 b = floor(b); // 函数向下取整,得到比 b 小的最大整数 c = floor(c); // 函数向下取整,得到比 c 小的最大整数 d = floor(d); // 已经被 int 强行转化为 -1 printf("%d\n",a); // 1 printf("%f\n", b); // 1.000000 printf("%f\n", c); // -2.000000 printf("%d\n", d); // -1 return 0; } (3)使用ceil函数向上取整

若输出的结果有小数,可以使用 ceil 函数,可以得到比该数大的最小整数,代码如下:

// 注意:在使用ceil函数时,需要加上头文件 #include <math.h> #include <stdio.h> #include <math.h> int main() { int a; int b; float c = 1.2; a = ceil(1.3); // 函数向上取整,得到比 a 大的最小整数 b = ceil(-1.1); // 函数向上取整,得到比 b 大的最小整数 c = ceil(c); // 函数向上取整,得到比 c 大的最小整数 printf("%d\n", a); // 2 printf("%d\n", b); // -1 printf("%f\n", c); // 2.000000 return 0; } 三、数值四舍五入 (1)使用round函数进行四舍五入

若题目要求,最后的输出结果进行四舍五入,此时就可以用到round函数,注意:round函数只是针对整型的四舍五入,不能对浮点型使用。规则:(±)0.5时往绝对值小的方向 ,代码如下:

// 注意:在使用round函数时,需要加上头文件 #include <math.h> #include <stdio.h> #include <math.h> int main() { int a,b,c; a = round(3.6); // 进行四舍五入 b = round(2.4); // 进行四舍五入 c = round(1.46); // 进行四舍五入 printf("%d\n", b); // 4 printf("%d\n", a); // 2 printf("%d\n", c); // 1 发现round函数只是针对整数的四舍五入,不针对浮点数 return 0; } (2)使用rint函数进行四舍五入

若题目要求,最后的输出结果进行四舍五入,此时就可以用到rint函数,注意:rint函数只是针对浮点型的四舍五入,不能对整型使用。规则:(±)0.5时往绝对值小的方向 ,代码如下:

// 注意:在使用rint函数时,需要加上头文件 #include <math.h> #include <stdio.h> #include <math.h> int main() { double a, b; a = rint(3.45689412); b = rint(3.65); printf("%lf\n", a); // 3.000000 printf("%lf\n", b); // 4.000000 return 0; } (3)重点应用

到这里,大家肯定会提出疑问,上面演示的函数,只能对整数进行四舍五入,在小数中如果需要对,小数点后三位进行四舍五入呢,接下来,我们来揭晓答案。

举例:此时我们需要对一个小数保留三个小数位而第四个小数位按照四舍五入的规则进行,我们将数字扩大1000倍,使得第四位小数称为新数字的第一位,然后我们可以给它加上0.5后再进行强制性转化。加0.5的原因就是: 假如这个小数位的数值大于5,加上0.5能够实现进位的作用,倘若小于0.5,就没有实现进位的作用。如此,就能实现小数位的四舍五入。然后我们再对这个数值 进行强制性转化,然后再处以1000.0(记住,一定要1000.0,否则就会出现隐式转化),在输出的时候用%0.3f以实现保留三位小数。

代码如下:

#include <stdio.h> int main() { float a=3.1415; // 注意 整除两边的数必须是同一个类型 a = (int)(a * 1000 + 0.5) / 1000.0; //此时都是浮点数类型 printf("%.3f\n", a); // 3.142 return 0; } 四、在C中输出%d、%0xd、%-xd的输出格式

1. %d左右对齐,输出变量所有的数字。

2. %xd左右对齐,宽度为X,左边填充空格

3. %xd,当变量的实际宽度大于x时,输出变量所有的数字

4. %xd左右对齐,宽度为x,左边填充 0 

代码如下:

#include <stdio.h> int main() { int a = 1234; // %d左右对齐,输出变量所有的数字 printf("%d\n", a); // (1234) // %xd左右对齐,宽度为X,左边填充空格 printf("%6d\n", a); // ( 1234) // %xd,当变量的实际宽度大于x时,输出变量所有的数字 printf("%3d\n", a); // (1234) // %xd左右对齐,宽度为x,左边填充 0 printf("%05d\n", a);// (01234) return 0; } 五、除法:余除 % 、整除  /

1. 余除 % 和整除 / 两边必须是保持同一个类型的数值(且最好保持为整型)

2. 余除 的结果是两个数相处的余数,代码如下:

#include <stdio.h> int main() { int a = 2; int b = 3; printf("%d\n", b % a); // 3%2=1......1(余1) 结果为1 return 0; }

3. 整除 的结果是两个数相除的商,代码如下:

#include <stdio.h> int main() { int a = 4; int b = 8; printf("%d\n", b / a); // 8/4......0(余0) 结果为2 return 0; }

4.整除、余除的应用:一般用于较大数,求各个位数,代码如下:

#include <stdio.h> int main() { int x = 12345; int a, b, c, d, e; e = x % 10; // 求最后一位 d = x / 10 % 10; //(x/10%10)表示丢掉最后一位,求倒数第二位 c = x / 100 % 10; //(x/100%10)表示丢掉后两位,求倒数第三位 b = x / 1000 % 10;// (x/1000%10)表示丢掉后三位,求倒数第四位 a = x / 10000; // (x/10000)表示丢掉后四位,求第一位 printf("%d %d %d %d %d", a, b, c, d, e); // 1 2 3 4 5 return 0; } 五、连续输出

大家在刷题的时候肯定会遇到题目要求,数据的连续输出,其中代码如下:

#include <stdio.h> int main() { int x; while (scanf("%d", &x) != EOF) // 连续输出方式 { printf("%d\n", x); } return 0; }

到此这篇关于C语言在输入输出时遇到的常见问题总结的文章就介绍到这了,更多相关C语言输入输出内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    电脑输出接音箱|电脑音箱接线

    电脑输出接音箱|电脑音箱接线,,电脑音箱接线把三根的视频线(黄、红、白)按颜色插入电视机的输入,黄色插DVD的视频输出,红白插DVD的左右声道,电

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    excel 四舍五入公式

    excel 四舍五入公式,四舍五入,公式,excel,本篇文章将分享一个Excel操作小技巧:如何通过公式进行四舍五入。1、首先双击打开表格文件,定位到

    aes接口的电脑|AES输出

    aes接口的电脑|AES输出,,1. AES输出 斯巴克cayinm-50cd 播放机是斯巴克公司最近设计的一款高档CD机,利用专业升频芯片处理软件,将声频提升