时间测试:
声明一个包含10000个元素的数组,随机生成0到255的整数数据,对大于128的元素进行计数。循环1000次,打印出程序花费的时间。
分支预测
调试/发布
Start = clock();
End = clock();
UseTime = end - start;
这个问题该怎么解决呢,麻烦各位帮忙看看,这是我初步写的一些代码,该怎么修改下能实现呢?
#include
int main()
{
int arr1[10000]==rand()%256;
int count=0;
for(int i=1;i<=1000;i++){
if(arr1>128){
count++;
}
}
printf("%d",count);
}
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
// 计时变量
clock_t start, end;
start = clock();
// 数组下标0-9999
int arr1[10000];
for (int t = 0; t < 1000; t++)
{
// 初始化生成随机数
for (int i = 0; i < 10000; i++)
{
arr1[i] = rand() % 256;
}
// 计数
int count = 0;
for (int i = 0; i < 10000; i++)
{
if (arr1[i] > 128)
{
count++;
}
}
printf("第%d次:计数结果 = %d\n", t + 1, count);
}
end = clock();
// CLK_TCK 机器时钟每秒所走的时钟打点数
printf("time = %.3f s\n", (double)(end - start) / CLK_TCK);
}
修改完的程序如上。
主要错误如下:
#include<stdio.h>
#include<time.h>
#include <stdlib.h>
int arr1[10000];
int main()
{
srand(time(NULL));
time_t start, end;
start = clock();
for (int i = 0; i < 1000; ++i) {
for (int j = 0; j < 10000; ++j)
arr1[j] = rand() % 256;
int count = 0;
for (int j = 0; j < 10000; j++) {
if (arr1[j] > 128) {
count++;
}
}
printf("%d\n", count);
}
end = clock();
printf("耗时:%lldms",end-start);
}