char型の二次元配列(単語の集合の配列を作りたい)をある基準(例えば文字の長さが小さい順)によって並び変える操作を行いたいです。
ただし 単語の長さは25文字以下としています。
c
1 2void selectionsort(int distance[],char *voc[],int num) 3/*distance[] は並び替えの基準(文字の長さ等)vocは単語の集合 4 numは単語の総数(動的確保した為)*/ 5{ 6 int i,j,idx,min; 7//idxは基準が最小のidx番号を格納する変数 minは最小のdistance[idx] 8 char box[25];//vocを入れ替えるための箱 9 for(i=0;i<num;i++){//文字の長さの最小を見つける 10 min=distance[i]; 11 for(j=i+1;j<num;j++){ 12 if(min>distance[j]){ 13 idx=j; 14 min=distance[j]; 15 } 16 } 17 if(min==distance[i]) continue; 18 //vocとdistanceの並び替え 19 box=voc[idx]; 20 voc[idx]=voc[i]; 21 voc[i]=box; 22 distance[idx]=distance[i]; 23 distance[i]=min; 24 if(i==num-1) break; 25 } 26 return; 27}
この関数を用いたコードをコンパイラすると
エラー: 型 ‘char[25]’ への型 ‘char *’ からの代入時に互換性のない型です
box=voc[idx];
がでできます。エラーの原因がわからないので教えて頂きたいのと、お勧めのchar型二次元配列を並び変え方について教えて頂きたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/05 03:38