同一台计算机,同一个程序,同样的输入数据,为什么输出的结果不一样?

/*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毫秒
请按任意键继续. . .

————————————————————————

*/
展开
 我来答
woshihhyu
2013-05-01 · TA获得超过115个赞
知道答主
回答量:149
采纳率:0%
帮助的人:90.8万
展开全部
因为计算机每一瞬间运行加载的程序所运行的工作都不一样的,也就是同一台计算机状态是不断变化的,所以这次运行这段程序和下次运行这段程序的速度都有差异的,造成结果不一致
运算用的时间是肯定不同的,计算采用多任务机制,你的计算同一时间运行了多个进程,自然会使你的计算机每一时刻的运行的状态不一样。
homdy
2013-05-01 · TA获得超过1.4万个赞
知道大有可为答主
回答量:4258
采纳率:50%
帮助的人:2212万
展开全部
我觉得吧 用时XXX毫秒 那个数值 是运行前面一段循环累计倒数求和的计算需要 时间,
因为计算机每一瞬间运行加载的程序所运行的工作都不一样的,也就是同一台计算机状态是不断变化的,
所以这次运行这段程序和下次运行这段程序的速度都有差异的,造成结果不一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式