⑴ c语言中int 能定义小数吗下面这个程序怎么回事
int 是整数类型,只会取整数
你那 x=567.12; y=123.4;也只等与567,y=123;
所以sum的值为567+123
⑵ C语言输入小数,精确到小数点后10位
把scanf("%15.10f",&x);应该改成scanf("%15lf",&x);这样就好了。
代码中x是double型的,在输入数据的时候是不允许使用%f的,double型的数据输入必须使用%lf
还有,scanf("%15.10f",&x);15.10这个是不允许出现的,在数据输入的时候只能指定输入数据的总长度,不能指定小数点后的长度。
(2)c语言源程序可以用小数点吗扩展阅读:
scanf(函数原型
intscanf(constchar*restrictformat,...);
函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
⑶ c语言中小数怎么表示
两种表示方式:
1、定点表示:必须有小数点。
例如:0.123, .123, 123.0。
2、指数表示:e或E之前必须有数字,指数必须为整数。
例如:12.3e3 ,123E2, 1.23e4。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。
定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:
一般说来,如果最末位xn= 1,前面各位都为0,则数的绝对值最小,即|x|min= 2^(-n)。如果各位均为1,则数的绝对值最大,即|x|max=1-2^(-n)。所以定点小数的表示范围是:2^(-n)≤|x|≤1 -2^(-n)。
(3)c语言源程序可以用小数点吗扩展阅读
由于“编码总位数为8”的限制,真值-128无法用原码、反码来表示,似乎不能用上述规则来求解补码,但实际上是可行的——只要不管它的最高位即可,操作办法如下:
将128化为二进制为:1 0000000,最高位为1,可以只对舍去最高位后剩余的7位进行处理即可,首先取反得:1111111,加1得:1 0000000,最高位有进位需丢弃,即得:0000000,加上符号位就得补码:1 0000000。
又如,当编码总位数为4时,真值X=+0.101的原码、反码、补码均为:0 101。
真值X=-0.101的原码、反码、补码依次为:1 101、1 010、1 011。
同理,特例,-1的补码为:1 000。
在定点小数中,小数点隐含在第一位编码和第二位编码之间
定点小数,是指小数点准确固定在数据某个位置上的小数,从实用角度看,都把小数点固定在最高数据位的左边,小数点前边再设一位符号位。按此规则,任何一个小数都可以被写成 :N = NS . N-1N-2… N-M。
⑷ 谁能给个C语言各进制(2、8、10、16)自由转换的源程序要能算小数点的 。本人想学习学习--
我给你没有小数点的,你看看能不能自己编个ftox
把整数n换成b进制的数:它的思路是,先按逆序生成b进制数的每一位,再用函数reverse对字符串颠倒得到最终结果。你要是还有什么不懂,可以问我。
void itob(int n, char s[], int b)
{
int i, j ,sign;
void revrse(char s[]);
if((sian = n) < 0)
n = -n;
i = 0;
do {
j = n % b;
s[i++] = (j <= 9) ? j + '0' : j + 'a' -10;
}while ((n /= b) > 0);
if (b == 16) {
s[i++] = 'x';
s[i++] = '0';
}
if (sign < 0)
s[i++] = '-'; //如果要在前面加前缀,可以自己添加,比如十六进制的。
s[i] = '\0';
reverse(s);
}
void revrse(char s[])
{
int c, i, j;
for(i = 0; j = strlen(s) - 1; i < j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
⑸ c语言源程序文件名不能有小数点吗
1.1
程序默认你的文件的扩展名为".1",程序当然不认识的。
1
程序默认了你文件的扩展名为".cpp",你可以做完之后关闭程序,再去看这个名为1的文件,扩展名就是CPP。
按照教科书上打的,出错。
教科书也可能错的,很习惯了,现在出书的良心啊。
再或者,你看看是不是开始设置文件类型的时候就错了(猜测)。
⑹ c源程序不能表示的数制是
c源程序不能表示的数制是:二进制。
C语言源程序不能表示二进制,在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、八进制、十六进制3种形式表示。
在程序运行过程中,其值不能被改变的量称为常量。常量也分为整型、实型、字符型等。以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型。
(6)c语言源程序可以用小数点吗扩展阅读
二进制对计算机的重要性:
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。【计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0】
20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。
19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号"0''.''1''的某种代数演算,二进制是逢2进位的进位制。0、1是基本算符。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。
⑺ c语言怎么让输出值是小数
利用C语言使输出值为小数的编程方法和思想如下:
1.首先需要定义一个变量作为后续需要输出的数。这里以定义一个变量a为例。需要注意的是,整型int是不支持转化的。
⑻ C语言中如何保留一位小数点
可以通过printf函数中的输出格式说明符来实现保留一位小数点,要保留一位小数就用printf("%.1f",x),例子如程序中给出那样。
例子如下:
(8)c语言源程序可以用小数点吗扩展阅读:
1.printf("%3.0f",floatNum):不保留小数
说明:%3.0f表明待打印的浮点数(floatNum)至少占3个字符宽,且不带小数点和小数部分,整数部分至少占3个位宽;
注意:这里的3只代表整数部分至少占3位,舍弃小数点和小数点后面的部分。
2.printf("%6.2f".floatNum):保留两位小数
说明:%6.2f 表明待打印的数(floatNum)至少占6个字符宽度(包括两位小数和一个小数点),且小数点后面有2位小数,小数点占一位,所以整数部分至少占3位。
注意:这里的6是待打印的数至少占据的字符宽度,包括两位小数(如果小数不够两位用0补位,例如100.1打印出来为100.10)和一个小数点,所以整数部分至少占3个字符宽度。
⑼ 为什么这个c语言程序输入小数点会出错
这个程序中定义的 变量i和数组 a[5]都是int型的,而且scanf("%d", &a[i]);中要求输入的数为%d也是整形,所以只能输入整型数值,你可以将变量定义类型改为
double i, a[5]; 并且scanf("%d", &a[i]);改为scanf("%lf", &a[i]);就可以输入带有小数点的数值了
⑽ C语言如何输入小数
看不清你的程序。
如说输出,不要小数点尾部的0,可以用 %g 格式。
#include <stdio.h>
main()
{
double d;
float f;
printf("enter 1.23\n");
scanf("%lf", &d);
printf("your input is %g\n",d);
printf("enter 4.56\n");
scanf("%f", &f);
printf("your input is %g\n",f);
return 0;
}