実行時間の計測をするためのプログラムです。
38行目を正確に直してほしいのですが・・・・
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10000/*変更して測定*/
void quick_sort(int a[], int l, int r){
int v, i, j, t;
if(r > l){
/*3要素の中央値*/
v = a[r]; j = (l+r)/2;
if (a[j] > v)
if(a[l] >= a[j]){
a[r] = a[j];
a[j] = v;
} else if (a[l] > v) {
a[r] = a[l];
a[l] = v;
}else if (a[j] >= a){
a[r] = a[j];
a[j] = v;
} else if (a[l] < v) {
a[r] = a[l];
a[l] = v;
}
quick_sort(a, l, i-1);
quick_sort(a, i+1, r);
}
}
main()
{
int i, x[MAX], n;
time_t start, end;
srand(99); /*乱数列の選択*/
for(i=0; i<MAX; i++) x = rand() % MAX;
n = MAX;
start = clock();
quick_sort(x, n);/*測定対象プログラム*/
end = clock();
printf("sort\n");
for (i = 0; i < n; i++)
if(i==i/100*100)printf("%d\n", x);/*100毎に出力*/
printf("exec time: %lf sec\n", (double)(end-start)/(double)CLOCKS_PER_SEC);
return 0;
}
で、『38: 呼び出し時のパラメータが足りない:quick_sort(関数 main )』
という風に出てしまうんですが、どうすれば良いのでしょうか。
分かる方お願いします。
至急お願いします。
Re: 至急お願いします。
quick_sortは引数が3つ必要なのに、
二つしか与えていないので、3つ目の引数を与えればよいですよ。
二つしか与えていないので、3つ目の引数を与えればよいですよ。
Re: 至急お願いします。
quick_sort(x,0, n);/*測定対象プログラム*/
と
quick_sort(x,0, n-1);/*測定対象プログラム*/
を試してみてください。
自分の環境ではどちらもアクセス違反が出ましたが。
quick_sort関数でiを初期化せずに使っているのが問題ではないかと思われます。
コードは
と
quick_sort(x,0, n-1);/*測定対象プログラム*/
を試してみてください。
自分の環境ではどちらもアクセス違反が出ましたが。
quick_sort関数でiを初期化せずに使っているのが問題ではないかと思われます。
コードは
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 至急お願いします。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1051337970
大元のソースを直さないと、あとを絶たないかもですね。出所はどこですか?
大元のソースを直さないと、あとを絶たないかもですね。出所はどこですか?
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 至急お願いします。
> momoさん
新しい投稿をする前に前のトピックを閉じるか何かコメントを返すようにお願いします。
また、複数の名前をお使いにならず、どれか一つをお使いください。
よろしくお願いします。
新しい投稿をする前に前のトピックを閉じるか何かコメントを返すようにお願いします。
また、複数の名前をお使いにならず、どれか一つをお使いください。
よろしくお願いします。
Re: 至急お願いします。
momoさん=nekoさん ではないのでしょうか?momo さんが書きました:すみません。
トピックの閉鎖の仕方を教えてください。
トピックの閉鎖と仰っているのは解決したことにするということであれば、
投稿ボタンの横に 解決!と書かれたチェックボックスがありますので
そちらにチェックを入れて投稿していただければ解決済みにすることは可能です。