C语言 数学 111可以转换为006F吗? c语言数组交换
C语言中的保留两位小数四舍五入的问题
应该是精度问题。因你使用的是float变量,你可以用printf显示a*100的结果是155.499995而不是155.50000你可以全改成double型#include <stdio.h>
double fun ( double h )
{ return (long)( h * 100 +0.5 )/ 100.0;
}main( )
{ double a;
printf ("Enter a: "); scanf ( "%lf", &a );
printf ( "The original data is : " );
printf ( "%lf %lf\n\n", a, a*100 );
printf ( "The result : %lf\n", fun ( a ) );
}
c语言中怎么保留小数2位
在c语言中让一个数保留2位小数可以通过精度限定符来完成,精度限定符有一个点号后跟一个整数组成。其准确含义依赖于它所修饰的数据类型。示例如下:
#include
int main()
{
printf("%.2lf\n", 1.2345678);
return 0;
}
c语言的主要特点:
优点
1、简洁紧凑、灵活方便
C语言一共只有40个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6、生成目标代码质量高,程序执行效率高
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
C语言把小数精确到后一位:比如:
int的作用是将后面计算结果强制数据类型转换为int, 换句话说舍弃小数部分:
i*10=123.4
(i*10)+0.5=123.9 如果原小数点后第2位>=5,这个加法会导致进位,在整数部分实现四舍五入
(int)((i*10)+0.5)=(int)(123.9)=123 取整实现舍弃后续位
(int)((i*10)+0.5)*0.1=12.3
C语言运算表达式中的小数按什么数据类型处理
在C语言中,我们使用float、double 来表示小数,
在内存中的形式如下所示:
类型 符号 指数 尾数
float 1bit 8bit 23bit
double 1bit 11bit 52bit
输出 float 使用 %f 控制符,输出 double 使用 %lf 控制符,实例如下所示:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a=128.101;
float b=0.302f;
float c=1.23002398f;
double d=123;
double e = 78.429;
printf("a=%f \nb=%f \nc=%f \nd=%lf \ne=%lf\n", a, b, c, d, e);
system("pause");
return 0;
}
运行结果:
a=128.100998
b=0.302000
c=1.230024
d=123.000000
e=78.429000
对代码的说明:
1) %f 默认保留六位小数,不足六位以 0 补齐,超过六位按四舍五入截断。
2) 将整数赋值给 float 变量时会转换为小数。
3) 小数默认为 double 类型,加上后缀f才是float类型。
4) 由于内存有限,小数的精度受限,所以输出 a 时只能获得一个近似数。