• ベストアンサー

関数の中身

整数型の配列dとデータの個数nを引数として受け取り、d[0]からd[n-1]までの内容を逆順に入れ替える関数void revをつくってます。 void rev(int d[],int n) { int a,b,i; a=n-1; b=1; for(i=1;i<=a;i++){ b[]=d[n-1]; n--; b++; } } と作ったのですが、うまく動きません。 どこがおかしいのでしょうか? 書き直してもらってかまいません。

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

  • ベストアンサー
  • Damsel
  • ベストアンサー率37% (18/48)
回答No.1

b[]=d[n-1]; のところがわからなかったので、書き直してみます。 void rev(int d[],int n) { int a,i; for( i=0; i<=(n-1)/2; i++ ){ a = d[i]; d[i] = d[n-1-i]; d[n-1-i] = a; } } でどうでしょうか?

その他の回答 (1)

回答No.2

int a = 0; int b = n-1; while ( a < b ) { d[a] と d[b] の中身を入れ替える ++a; --b; }

関連するQ&A

専門家に質問してみよう