C语言double型变量的初始化到底是是0还是0.0?
C语言考试系统,doubles;s=0.0;系统不给分;提供的答案是s=0;两者执行结果相同。是系统问题还是真的不能s=0.0;望高人指点迷津!!!...
C语言考试系统,double s;s=0.0;系统不给分;提供的答案是s=0;
两者执行结果相同。是系统问题还是真的不能s=0.0;
望高人指点迷津!!! 展开
两者执行结果相同。是系统问题还是真的不能s=0.0;
望高人指点迷津!!! 展开
展开全部
0和0.0没有区别。
C语言编程时常量写为0时,系统默认其是一个整型常量int,写0.0时系统默认其是双精度浮点型常量double。
在定义局部变量时不赋值的话,则对静态变量来说,编译时自动赋初值0或空字符。而对自动变量来说,如果不赋值,它的值是一个不确定的值。
扩展资料
当用%d去读double类型数据时,得到的为零,因为int型只取低32为付给整型变量,item=1.000000时转化成int型为0
1#include<stdio.h>
2intmain()
3{
4inti,j,n;//item,s;
5doubleitem,s;//当用%d去读double类型数据时,得到的为零,
6//因为int型只取低32为付给整型变量,item=1.000000时转化成int型为0
7scanf("%d",&n);
8s=0;
9for(i=1;i<=n;i++)
10{
11item=0;
12for(j=1;j<=i;j++)
13{
14item=item+1;
1516s=s+item;
17}
18}
19printf("%d\n",s);
2021return0;
22
23}
展开全部
都可以,没有任何区别。
当常量写为0时, 系统默认其是一个整型常量(int)。
当写作0.0时,系统默认其是双精度浮点型常量(double)。
从这一点上来说,初始化为0.0更为正规一些。
不过在整型向浮点型赋值时,系统默认会做隐式的类型强制转换,也就是说,写作double d = 0; 其实是和double d = (double)0;是一样的。 这样最终的结果就是值同样为0.所以说初始化为0还是0.0都是相同的,方便起见,一般直接写作0。
当常量写为0时, 系统默认其是一个整型常量(int)。
当写作0.0时,系统默认其是双精度浮点型常量(double)。
从这一点上来说,初始化为0.0更为正规一些。
不过在整型向浮点型赋值时,系统默认会做隐式的类型强制转换,也就是说,写作double d = 0; 其实是和double d = (double)0;是一样的。 这样最终的结果就是值同样为0.所以说初始化为0还是0.0都是相同的,方便起见,一般直接写作0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以进行s=0.0赋值,最好用这种赋值方式
考试系统把这个答案写死了,这个系统有问题
考试的时候记得写0,真正写程序时 s=0.0
考试系统把这个答案写死了,这个系统有问题
考试的时候记得写0,真正写程序时 s=0.0
更多追问追答
追问
既然是系统有问题,真正二级考试时应该不会出问题了吧,那要是碰到这情况还是得写0.0可以这样理解吗?
追答
真正的二级考试 可能会出这个题,考试时 按0 写吧,打着放弃这道题的打算吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是0 虽然结果是一致的 但运行时是行不通的
更多追问追答
追问
运行结果相同
追答
是 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要看你是不是把他设定为静态或者是全局变量,如果是的话,就是0,否者就是不定值。
更多追问追答
追问
答案是这样麻烦你看下吧
#include
double fun(int n)
{ int i; double s, t;
/**********found**********/
s=0;
for(i=1; i0): "); scanf("%d",&n); }
printf("\nThe result is: %f\n",fun(n));
}
追答
你这个是要发现什么,能不能讲清楚点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询