前提・実現したいこと
要素数が n(n<=100)である int 型の配列 vc の並びを逆順にする関数
void rev_intarray( int *vc, int n )
を作成し,main関数からキーボードから入力した要素数 nとn個の整数からなる整数型配列を引数として渡すことで呼び出して,結果を表示せよ.
という課題が出たのですが、うまく行かず手を貸していただきたいです。
発生している問題・エラーメッセージ
二桁に入ってからの処理がうまくいきません
該当のソースコード
c
1#include <stdio.h> 2#include <stdlib.h> 3 4void rev_intarray( char *vc, int n ){ 5 int first=0, last, temp; 6 last = n; 7 for(first=0;first<n/2;first++){ 8 temp = *(vc+first); 9 *(vc+first) = *(vc+last); 10 *(vc+last) = temp; 11 12 last--; 13 } 14} 15 16int main(){ 17 int n=0, i=0; 18 char vs[100]; 19 20 fgets(vs,100,stdin); 21 n = atoi(vs); 22 23 rev_intarray(&vs[2], 2*n-2); 24 for(i=2;i<=2*n;i++){ 25 printf("%c", vs[i]); 26 } 27 return 0; 28}
試したこと
一桁の数字の場合はうまくいくのですが、二桁になるとうまくいきません...
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
(課題がわからないなら先生に聞きましょうと何度teratailで書いたことか)
(課題ってわざわざ言わなきゃいいのに)
(自分の分からないところがわかってるんだったらそこだけ抜き取って質問すればいいのに)
>入力した要素数 nとn個の整数からなる整数型配列を引数として〜
void rev_intarray( char *vc, int n )・・・これって、おかしくないですか?
『整数型配列』は何処に?
・・・rev_intarray(&vs[2], 2*n-2);←なぜ、「要素数 n」が「2*n-2」に成るのでしょう?
題名中の"ソート"を読み、更に質問内容を読んで「を?」と思ったのですが、SORTと聞くと一般的には昇順、降順に並び替えることを指すことがほとんどだと思いますが、「一定の基準で並び替える」をSORTの定義とするならば、末端から先頭に並び替えるのもSORTと言っていいのかな?
退会しとりますがな。。。