‘壹’ c语言培训,函数,输入函数输入时可以规定精度吗输入时可以规定域宽吗
scanf输入时不允许规定精度,
scanf输入时可以指定域宽,
比如说:
int a;
scanf("%3d",&a);
这个规定的是输入域宽为3。
‘贰’ scanf函数能使用%.2f控制输入实数的精度吗能用<接收字符数据吗
只可以接收基本数据类型,用来存储数据的变量的类型是指定的,然后才能判断接受到的类型。scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。
‘叁’ C语言中scanf函数中无精度控制吗
scanf中可以指定最大允许读取的字符数量,如果你指的是这样的“精度控制”的话。
例如:scanf("%4d", &a); 那么最多就只会读取4位数字赋值给整型变量a。
‘肆’ C语言中控制精度是什么意思
精度主要是指在内存中的存储。比如:int
a;
int
b=5,c=2;
a=b/c;printf("a=%d\n",a);
只会输出a=2而不会输出2.5或3。
c语言中:
float浮点数7位有效数字。
double双精度数16位有效数字。
单精度数的尾数用23位存储,加上默认的小数
点前的1位1,2^(23+1)
=
16777216。
因为
10^7
<
16777216
<
10^8,所以说单精度浮点数的有效位数是7位。
双精度的尾数用52位存储,2^(52+1)
=
9007199254740992,10^16
<
9007199254740992
<
10^17,所以双精度的有效位数是16位
单精度浮点数的实际有效精度为24位二进制,这相当于
24*log102≈7.2位10进制的精度,所以平时我们说“单精度浮点数具有7位精度”。
(精度的理解:当从1.000...02变化为1.000...12时,变动范围为2-23,考虑到因为四舍五入而得到的1倍精度提高,所以单精度浮点数可以反映2-24的数值变化,即24位二进制精度)浮点数7位有效数字。(应该是单精度数)双精度数16位有效数字。
浮点数取值范围:负数取值范围为
-3.4028235E+38
到
-1.401298E-45,正数取值范围为
1.401298E-45
到
3.4028235E+38。
双精度数取值范围:负值取值范围-1.79769313486231570E+308
到
-4.94065645841246544E-324,正值取值范围为
4.94065645841246544E-324
到
1.79769313486231570E+308。
所以精度是测量值与真值的接近程度。包含精密度和准确度两个方面精度的等级是以它的允许误差占表盘刻度值的百分数来划分的,其精度等级数越大允许误差占表盘刻度极限值越大。
量程越大,同样精度等级的,它测得压力值的绝对值允许误差越大。
精度经常使用的的精度为
2.5
、1.5
级,如果是1.0和0.5级的属于高精度,现在有的数字已经达到0.25级。
‘伍’ 用c语言编程,计算f(x)的值。要求从键盘上输入x的值,精度控制在0.001内
C语言中,一般用scanf ("%d",&a);来读取从键盘上输入的数字,其中a为已定义变量
在输出时
printf(''%.3f'',f(x));可以使精确度控制在0.001内
‘陆’ C语言编程序时怎么控制浮点型输出的小数点精确到几位
使用输出格式说明符来指定精确到小数点位数。
如:
void main()
{
float a=345.234678;
printf("%.3f ", a) ;
}
其中%.3f里的3就表示输出精确到小数点后3位。
所以可参考的形式是printf("%m.nf",p);
%m.nf,指定输出的数据共占m列,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。
(6)c语言输入能控制精确度吗扩展阅读:
实型变量分为两类:单精度型和双精度型,
其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
实型变量说明的格式和书写规则与整型相同。
例如: float x,y; (x,y为单精度实型量)
double a,b,c; (a,b,c为双精度实型量)
实型常数不分单、双精度,都按双精度double型处理。
‘柒’ c语言printf函数怎么控制输出实数的精度
可以通过输出格式说明符来指定精确到小数点后几位。
比如:
printf("%.5f
", 3.1415927) // 输出_ 3.14159 (其中_ 代表空格)
上面的输出格式说明符%.5f 中各部分意思如下:
%f 浮点数;
".5”——(5的前面有个小数点)表示输出精确到小数点后5位。如果实际数字不足5位,则在末尾补0,若大于5位,则按四舍五入取前五位。
‘捌’ 关于c语言中计算时的精度调整
可以
#include<stdio.h>
int main()
{
printf("%.3lf\n",0.333*3);
return 0;
}
‘玖’ 如何提高c语言精确度
1.规定明确的数据类型(int、double、float)
2.用
Math
里的函数舍去或补齐
3.麻烦一点、设定数据偏移量,在舍去或补齐编译量范围内的数据
比如
偏移量为
0.001
if
(0.800000011 -
0.800 <
0.001
*
5)
{
0.800000011 =
0.800;
}
else
{
0.800000011 =
0.800
+
0.001;
}
至于
0.800
这个数是怎么取的
方法有很多
可以截取字符串,可以计算,可以用Math里的函数
计算的方法
:
0.800000011 -
0.800000011 %
0.001
计算过程中一定要明确数据类型,数据类型越明确误差越小
‘拾’ 如何保证C语言中输入一个极大的数时输出的准确度。求对例子的详细解释、解决办法。
如用 MS VC++ 6.0 编译器,数值未超过 8字节 整型时,可改用 _int64 型。
#include<stdio.h>
#include<stdlib.h>
main(){
_int64 a,b,c;
printf("input a b\n");
scanf("%I64d %I64d", &a,&b);
printf("%I64d\n", a+b);
printf("input c\n");
scanf("%I64d",&c);
if( c<=2147000000 && c>=-2147000000)
printf("%I64d %I64d\n",c/2+1,c-1-c/2);
return 0;
}
---------
超出此范围,要用大数运算,(可在网络知道里找 大数四则运算 程序),输入 用 字符串 形式。