c - C、时钟函数只返回0.00000
问题描述
当我运行这段代码时,它每次打印 0.000000 而不是一些看似合理的东西:
#include <stdio.h>
#include <time.h>
#define n 10
void ordinaVett(int v[], int elem){
clock_t inizio, fine;
double tempo;
int i, j, x, posmin, tmp;
printf("\n\nOrdinamento vettore di %d elementi per %d volte: \n", elem, n);
printf("Sele-sort:\n");
for(x = 0; x < n; x++){
inizio = clock();
//Ordinamento con Sele-sort
for(i = 0; i < elem - 1; i++){
posmin = i;
for(j = i + 1; j < elem; j++){
if(v[j] < v[posmin])
posmin = j;
}
if(posmin != i){
tmp = v[i];
v[i] = v[posmin];
v[posmin] = tmp;
}
}
fine = clock();
//Visualizzazione vettore
for(i = 0; i < elem; i++){
printf("%d |", v[i]);
}
tempo = (double)(fine - inizio)/CLOCKS_PER_SEC;
printf(" Tempo: %f\n", tempo);
}
}
int main(){
srand(time(NULL));
int elementi = 20, i;
int v[elementi];
printf("Creazione vettore 20 elementi: \n");
for(i = 0; i < elementi; i++)
{
v[i] = rand() % 1001;
printf("%d |", v[i]);
}
ordinaVett(v, elementi);
}
我应该怎么做才能看到正常的输出?谢谢!
有些词是意大利语,所以:tempo 是时间,ordinaVett 是 sortArray,inizio 是 start,fine 是 end。
解决方案
好吧,没关系,我意识到 CPU 太快了,双变量不能容纳这么简单的数字。这肯定是一个非常愚蠢的练习,放在教科书上。
推荐阅读
- c# - 异步不适用于 Visual Studio 2010 和 .NET 4.0?
- c# - C# 语法错误 - CS1003(生成 CLI)
- python - 如何使用 pipenv 安装 PyTorch 并将其保存到 Pipfile 和 Pipfile.lock?
- amazon-cloudformation - 如何在 CDK 中查找现有的 Internet 网关?
- python - 如何按区域对 regionprops 中的区域进行排序?
- java - 为什么我的文本文件比我的二进制文件大?
- node.js - 当我更改数据时,为什么客户端没有从已订阅 Sails.js 模型的套接字接收更新?
- c++ - QTableView,拉伸所有部分,但最后一个调整为内容
- blockchain - 错误:地址无效(arg="",coderType="address",value=[0])
- macos - 为什么我的终端不能运行 icecast.xml 代码?