为什么加上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
阅读 2.4k
1 个回答

你输入时指定的格式不对,
图片描述

%lld 改为 %d后, 运行正常

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题