大神,指导指导下这个程序哪错了

写了一段代码测试CPU的性能,结果一直有错误,望大神指出来
#include

#include

#include

#include

#define size 1000

#define step 1000

main()

{

int i,j,k,temp;

char *a;

clock_t end;

struct timeval time1,time2;

gettimeofday(&time1,NULL); //取得当前系统时间

a=(char*)malloc(size*size); //为数组a申请内存空间 for(i=0;i<size;i++)

for (j=0;j<size;j++)

a[i*size+j]=(char)(10.0*rand()/(RAND_MAX+1.0)); for(i=0;i<size;i++)

for(j=0;j<size;j++)

for(k=0;k<step;k++)

temp=a[i*size+j]*a[i*size+j];

end=clock(); //取得CPU时间

gettimeofday(&time2,NULL); //取得当前的系统时间

time2.tv_sec-=time1.tv_sec; //计算响应时间

time2.tv_usec-=time1.tv_usec;

if(time2.tv_usec<0L)

{

time2.tv_usec+=1000000L;

time2.tv_sec-=1;

}

printf("CPU time is: %f\n",end/1000000.0);

printf("Wall clock time is:%ld.%6ld seconds\n",time2.tv_sec, time2.tv_usec);

free(a);

return 0;

}

程序2:

#include

#include

#include

#include

#define size 1000

#define step 1000

main()

{

int i,j,k,temp;

char *a;

FILE *fp;

clock_t end;

struct timeval time1,time2;

gettimeofday(&time1,NULL);

fp=fopen("data.dat","r");

a=(char*)malloc(size*size);

for(i=0;i<size;i++)

for (j=0;j<size;j++)

a[i*size+j]=fgetc(fp);

for(i=0;i<size;i++)

for(j=0;j<size;j++)

for(k=0;k<step;k++)

temp=a[i*size+j]*a[i*size+j];

end=clock();

gettimeofday(&time2,NULL);

time2.tv_sec-=time1.tv_sec;

time2.tv_usec-=time1.tv_usec;

if(time2.tv_usec<0L)

{

time2.tv_usec+=1000000L;

time2.tv_sec-=1;

}

printf("CPU time is: %f\n",end/1000000.0);

printf("Wall clock time is: %ld.%6ld seconds\n",time2.tv_sec, time2.tv_usec);

free(a);

return 0;

}

程序3:

#include

#include

#define size 1000

main()

{

FILE *fp;

int i,j;

fp=fopen("data.dat","w");

srand((int)time(0)); //初始化随机数发生器 for(i=0;i<size;i++)

for (j=0;j<size;j++)

fputc((int)(10.0*rand()/(RAND_MAX+1.0)),fp);

fclose(fp);

}

程序4:

#include

#include

#include

main()

{

int i,j,k;

struct timeval time1,time2;

gettimeofday(&time1,NULL);

scanf(“%d%d%d”,&i,&j,&k);

printf(“%d\n”,i*j*k);

end=clock();

gettimeofday(&time2,NULL);

time2.tv_sec-=time1.tv_sec;

time2.tv_usec-=time1.tv_usec;

if(time2.tv_usec<0L)

{

time2.tv_usec+=1000000L;

time2.tv_sec-=1;

}

printf("CPU time is: %f\n",end/1000000.0);

printf("Wall clock time is:%ld.%6ld seconds\n",time2.tv_sec, time2.tv_usec);

return 0;

}

看了一下,发现没看出来,真是尴尬。

贴出来报什么错误。你的程序还涉及输入输出文件读写,这个没办法直接帮你调试。

图片说明

这是linux的头文件,windows下用include <windows.h>