C语言中double型变量,%d输出为0 的原因

对于初学者C语言常见的错误:
1.中英文切换问题,所有代码应该在英文环境下输入,有时不小心在中文下输入,编译时出现一堆错误。
(个人感觉辨别中英文是否出错最直观的就是,中文字符比较精致,英文支付看上去有点粗线条,
否则就变异查找错误: error C2065: “;”: 未声明的标识符(VS下))。



2.常见的还有拼写错误特别是:main()这个词。
3.scanf(“%d”,&a);忘记加&;可能会提示文件无法写入的错误。
4.{}的乱用,不知道怎么加、必须成对出现。
代码:当用%d去读double类型数据时,得到的为零,因为int型只取低32为付给整型变量,item=1.000000时转化成int型为0

1
#include<stdio.h> 2 int main() 3 { 4 int i,j,n;//item,s; 5 double item,s;//当用%d去读double类型数据时,得到的为零, 6 //因为int型只取低32为付给整型变量,item=1.000000时转化成int型为0 7 scanf("%d",&n); 8 s=0; 9 for(i=1;i<=n;i++) 10 { 11 item=0; 12 for(j=1;j<=i;j++) 13 { 14 item= item+1; 15 16 s=s+item; 17 } 18 } 19 printf("%d ",s); 20 21 return 0; 22 23 }

double下第19行输出为0;

int下第19行输出为正确数。

原文地址:https://www.cnblogs.com/linmengran/p/6010869.html