【发布时间】:2018-05-28 08:25:15
【问题描述】:
我遇到了 icc 的问题,到目前为止我还没有找到任何解决方案。我的程序用gcc编译时运行正常,但用icc编译时显然不执行任何操作。不会发生运行时错误。程序结束得很快(几毫秒),但预计需要几秒钟(n = 10 亿大约需要 11 秒)。但是,如果我在最后打印总数,它就可以了。
这是一个小代码:
# include <stdlib.h>
# include <stdio.h>
double f(double x){
double pi = 3.141592653589793;
double value;
value = 50.0 / (pi * (2500.0 * x * x + 1.0));
return value;
}
int main (int argc, char *argv[]){
double a = 0.0, b = 10.0, total = 0.0, x;
unsigned long int i, n = 1000000000;
for(i = 0; i < n; i++){
x = ((n - i - 1) * a + (i) * b) / (n - 1);
total = total + f(x);
}
total = (b - a) * total / (double) n;
//printf("%f\n", total);
return 0;
}
我还检查了它确实运行了循环并调用了函数 n 次。
有谁知道是什么导致了这个问题?
谢谢!
【问题讨论】: