• ベストアンサー

コンパイルできない!助けてください!

以下のプログラムがコンパイル出来ません。 なぜでしょうか? それと、このプログラムにソート対象の比較回数や書き換え回数を付け加えたいのですが、どうもうまくいきません。 あと、乱数を発生させて実験もしてみたいのですが、うまくいきません。 どうしても、コームソート自体が納得いかず、色々、実験しています。 何か、いい情報があれば、教えていただければありがたいです。 質問が多くてすみません。 よろしくお願いします! #include <stdio.h> #include <time.h> /* * コームソート * */ void comb_sort11 (KEY x[], int n) { int i, gap; KEY hold; enum {BREAK, CONT} flag; gap = n; flag = CONT; while (flag == CONT !! gap > 1) { flag = BREAK; gap gap / 1.3; if (gap == 0) gap = 1 ; else if (gap == 9 !! gap == 10) gap = 11; for (i = 0; i + gap < n; i++) if( x[i] > x[i+gap]) { hold = x[i]; x[i] = x[i+gap]; x[i+gap] = hold; flag = CONT; } } } #include <stdio.h> main() { int s, e; int n=5,i; int x[] = {5,8,3,6,2}; s = clock(); comb_sort11(x,n); e = clock(); for (i = 0; i <= n-1; i++){ printf("%d",x[i]);} fprintf(stderr,"time = %d\n", e - s ); return 0; }

質問者が選んだベストアンサー

  • ベストアンサー
  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

「コンパイル出来ない」の具体的な症状を書かれた方が適切な回答が付くと思いますよ。(エラーメッセージ等) とりあえず私が気付いたのは、 flag == CONT !! gap > 1 等の「!!」です。 これは「||」の間違いではありませんか? 「|」は「\(またはバックスラッシュ)」のキーをシフトを押しながら打てば入力出来ます。 細かいロジック等はあまり時間がないので見ていません。 悪しからず。

YOSI163
質問者

お礼

KEYと||部分が間違っていました。 ありがとうございました!

YOSI163
質問者

補足

基本的な間違いをご指摘いただきありがとうございました! エラーメッセージは以下のようなまのが出ました。 もしよろしければ、教えてくださればありがたいです。 -------------------構成: コームソート1 - Win32 Debug-------------------- コンパイル中... コームソート1.c C:\My Documents\コームソート\コームソート1.c(8) : error C2146: 構文エラー : ')' が、識別子 'x' の前に必要です。 C:\My Documents\コームソート\コームソート1.c(8) : error C2061: 構文エラー : 識別子 'x' がシンタックスエラーを起こしました。 C:\My Documents\コームソート\コームソート1.c(8) : error C2059: 構文エラー : ';' C:\My Documents\コームソート\コームソート1.c(8) : error C2059: 構文エラー : '[' C:\My Documents\コームソート\コームソート1.c(8) : error C2059: 構文エラー : ')' C:\My Documents\コームソート\コームソート1.c(40) : warning C4013: 関数 'comb_sort11' は定義されていません。int 型の値を返す外部関数と見なします。 cl.exe の実行エラー コームソート1.obj - エラー 5、警告 1

その他の回答 (2)

  • natural
  • ベストアンサー率37% (419/1115)
回答No.3

tediwecさんと同じくKEYの部分なのですが、intに置き換えればとりあえず動くのではないでしょうか。 もしかしたら汎用的な配列を想定されているのかもしれませんが、当面の確認にはなると思います。

YOSI163
質問者

お礼

KEYと||部分が間違っていました。 ありがとうございました!

  • tediwec
  • ベストアンサー率70% (21/30)
回答No.2

こんにちは。 KEYというのは何でしょうか? KEYが定義されていないのでコンパイルエラーになるのだと思います。

YOSI163
質問者

お礼

KEYと||部分が間違っていました。 ありがとうございました!

関連するQ&A