-1
頁眉...冒泡與測量時間
的main.c
int main()
{
double *a = NULL ,n;
read(&a,&n);
clock_t start,stop;
start = clock();
bubblesort(a,n);
stop = clock();
float elapsedTime = (stop - start)/CLOCKS_PER_SEC;
printf("%f",elapsedTime);
write(a,n);
free(a);
return 0;
}
sema.c
void read(int *a,int n)
{
int i;
scanf("%d",&n);
a = (int*)malloc(n*sizeof(int));
if(a == 0){printf("Error");return 0;}
for(i = 0; i < n; ++i){
a[i] = rand() % 100;
}
}
void bubblesort(int *a,int n)
{
int i,j,csere;
for(i = 0; i < n-1; ++i){
for(j = 0; j < n - i -1; ++j){
if (a[j] > a[j + 1]){
csere = a[j];
a[j] = a[j + 1];
a[j + 1] = csere;
}
}
}
}
void write(int *a,int n)
{
int i;
for(i = 0; i < n; ++i){
printf("%i ",a[i]);
}
}
sema.h
void read(int*,int*);
void write(int*,int);
void bubblesort(int*,int);
我用調試器找到任何我problem.My寫入功能不能正常工作,因爲它認爲n爲0,但我輸入that.Also測量的時間不工作,我得到爲零。我真的不明白爲什麼n是零,如果我輸入。
如果你的編譯器沒有給你任何關於你的代碼中的錯誤的警告,那麼可能是得到一個新的編譯器的時候了。 –