同一台计算机,同一个程序,同样的输入数据,为什么输出的结果不一样?
/*algo1-1.c计算1-1/x+1/x*x…*/#include<stdio.h>#include<sys/timeb.h>voidmain(){structtim...
/* algo1-1.c 计算1-1/x+1/x*x… */
#include<stdio.h>
#include<sys/timeb.h>
void main()
{
struct timeb t1, t2;
long t;
double x, sum = 1, sum1;
int i, j, n;
printf("请输入x n:");
scanf("%lf%d", &x, &n);
ftime(&t1); /* 求得当前时间 */
for(i=1; i<=n; i++)
{
sum1 = 1;
for(j=1; j<=i; j++)
{
sum1 = -sum1/x;
}
sum += sum1;
}
ftime(&t2); /* 求得当前时间 */
t = (t2.time - t1.time) * 1000 + (t2.millitm - t1.millitm); /* 计算时间差 */
printf("sum=%lf 用时%ld毫秒\n", sum, t);
}
/*
在VC2010里的输出结果:
————————————————————————
请输入x n:123 10000
sum=0.991935 用时392毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时480毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时463毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时464毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时470毫秒
请按任意键继续. . .
————————————————————————
*/ 展开
#include<stdio.h>
#include<sys/timeb.h>
void main()
{
struct timeb t1, t2;
long t;
double x, sum = 1, sum1;
int i, j, n;
printf("请输入x n:");
scanf("%lf%d", &x, &n);
ftime(&t1); /* 求得当前时间 */
for(i=1; i<=n; i++)
{
sum1 = 1;
for(j=1; j<=i; j++)
{
sum1 = -sum1/x;
}
sum += sum1;
}
ftime(&t2); /* 求得当前时间 */
t = (t2.time - t1.time) * 1000 + (t2.millitm - t1.millitm); /* 计算时间差 */
printf("sum=%lf 用时%ld毫秒\n", sum, t);
}
/*
在VC2010里的输出结果:
————————————————————————
请输入x n:123 10000
sum=0.991935 用时392毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时480毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时463毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时464毫秒
请按任意键继续. . .
请输入x n:123 10000
sum=0.991935 用时470毫秒
请按任意键继续. . .
————————————————————————
*/ 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询