C语言在输入输出时遇到的常见问题总结_第1页
C语言在输入输出时遇到的常见问题总结_第2页
C语言在输入输出时遇到的常见问题总结_第3页
C语言在输入输出时遇到的常见问题总结_第4页
C语言在输入输出时遇到的常见问题总结_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C语言在输入输出时遇到的常见问题总结目录一、前言二、取整的方法(1)使用int强制转换(2)使用floor函数向下取整(3)使用ceil函数向上取整三、数值四舍五入(1)使用round函数进行四舍五入(2)使用rint函数进行四舍五入(3)重点应用四、在C中输出%d、%0xd、%-xd的输出格式五、除法:余除%、整除/五、连续输出

一、前言

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

二、取整的方法

(1)使用int强制转换

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

#includestdio.h

intmain()

intc=1.2;

c=(int)c;//强制转换

floata,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

return0;

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

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

//注意:在使用floor函数时,需要加上头文件#includemath.h

#includestdio.h

#includemath.h

intmain()

inta;

floatc=-1.2f;

floatb=1.2f;

intd=-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

return0;

}

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

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

//注意:在使用ceil函数时,需要加上头文件#includemath.h

#includestdio.h

#includemath.h

intmain()

inta;

intb;

floatc=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

return0;

}

三、数值四舍五入

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

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

//注意:在使用round函数时,需要加上头文件#includemath.h

#includestdio.h

#includemath.h

intmain()

inta,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函数只是针对整数的四舍五入,不针对浮点数

return0;

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

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

//注意:在使用rint函数时,需要加上头文件#includemath.h

#includestdio.h

#includemath.h

intmain()

doublea,b;

a=rint(3.45689412);

b=rint(3.65);

printf("%lf\n",a);//3.000000

printf("%lf\n",b);//4.000000

return0;

(3)重点应用

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

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

代码如下:

#includestdio.h

intmain()

floata=3.1415;

//注意整除两边的数必须是同一个类型

a=(int)(a*1000+0.5)/1000.0;//此时都是浮点数类型

printf("%.3f\n",a);//3.142

return0;

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

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

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

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

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

代码如下:

#includestdio.h

intmain()

inta=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)

return0;

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

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

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

#includestdio.h

intmain()

inta=2;

intb=3;

printf("%d\n",b%a);//3%2=1......1(余1)结果为1

return0;

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

#includestdio.h

intmain()

inta=4;

intb=8;

printf("%d\n",b/a);//8/4......0(余0)结果为2

return0;

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

#includestdio.h

intmain()

intx=12345;

inta,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%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论