为什么加上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 465536 6553600 0


慕勒3428872
浏览 433回答 1
1回答

HUWWW

你输入时指定的格式不对,&nbsp;%lld&nbsp;改为&nbsp;%d后, 运行正常
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

CSS3