-2

私の仕事は、C でカウント ソート アルゴリズムを作成することです。コンパイラは、プログラムを作成しない理由を作りませんが、機能しません。デバッガーのデバッグ中に 2 番目forの内容がエラーとして表示されるため、エラーが表示されないため、どこにエラーがあるかを尋ねています。

const int k = 77; 
const int n = 1000;

int T[n]; 
int Tp[n]; 
int TPom[k]; 

int i; 

  for(i = 0 ; i < k ; i++)
    TPom[i] = 0;                

  for(i = 0 ; i < k ; i++)
    TPom[T[i]]= TPom[T[i]]+1;               

  for(i = 1 ; i < k ; ++i)
    TPom[i] += TPom[i-1];       

  for(i = n-1 ; i >= 0 ; --i)
     Tp[--TPom[T[i]]] = T[i];
4

1 に答える 1

2

いくつか問題がありますので、ヒントを教えてください。

  • 2 番目のループは間違っています。ヒント: いくつの要素がT含まれていますか?

  • 3 番目のループは間違っていませんが、不要です。個人的には、このループのないアルゴリズムについて考える方が簡単だと思います (同意しないかもしれません)。

  • 最後のループが間違っています。0を介して値を反復処理し、移入しk-1ますTp。ループは を参照するべきではありませんT

于 2013-04-12T05:35:20.267 に答える