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

小宝哥Code 2013-05-01 01:23:09
/* 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毫秒
请按任意键继续. . .

————————————————————————
...全文
769 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
UnknowName 2013-05-01
  • 打赏
  • 举报
回复
同意楼上的观点, 每时每刻CPU的负载都是不同的。 你可以尝试下,同一个程序每一次运行的结果应该也不一样。
startservice 2013-05-01
  • 打赏
  • 举报
回复
计算机每个时刻CPU负载是不同的
Athenacle_ 2013-05-01
  • 打赏
  • 举报
回复
时间差这种东西不要较真。跟你的OS当时状态有关

70,016

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧