为什么加上double就会有输出
环境:codeblock
编译环境:mingw32-gcc.exe -pedantic -Wextra -Wall -std=c99 -c path
代码:
#include <stdio.h>
int main(){
FILE *fin, *fout;
fin = fopen("data.in","rb");
fout = fopen("data.out","wb");
int m, n;
int line = 1;
while(fscanf(fin, "%lld%lld", &n, &m) == 2){
if(m == 0 && n == 0) break;
double sum = 0;
for(int i=n;i<=m;i++){
//double j = i; //问题行
sum += 1 / ((double)i * (double)i);
}
fprintf(fout, "Case %d: %.5f\n", line, sum);
line++;
}
fclose(fin);
fclose(fout);
return 0;
}
问题:
当问题行也就是double j = i
取消注释的时候,data.out
就会有输出,而当问题行被注释上的时候,data.out
就不会有输出,为什么呢?
这行不是毫无意义吗?
输入数据为:
2 4
65536 655360
0 0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你输入时指定的格式不对,
%lld
改为%d
后, 运行正常