後方の要素へ1つ移動

[戻る]
矢頭 2010/06/13(日) 19:45:46
配列の各要素の内容を、1つ後方へ移動させるプログラムなのですが、
どのようにすればいいのか全くわかりません。
一応組んでみたりしたのですが全く動きません。
#include <stdio.h>

int main(void)
{
    int i, vx[5];

    for (i = 0; i < 5; i++) {
        printf("vx[%d]:", i);
        scanf("%d", &vx[i]);
    }

    for (i = 0; i < 4; i++) {
        int temp = vx[i];
        vx[i]    = vx[i -1];
        vx[4 - i]= temp;
    }


        for(i =0; i < 5; i++) {
        temp = vx[i];
        printf("vx[%d]=%d\n", i, vx[i]);

    return(0);
}
おかしな所等教えていただければ幸いです。

επιστημη [E-Mail] [HomePage] 2010/06/13(日) 23:08:56
#include <stdio.h>

int main(void) {
  int i;
  int vx[5] = { 111,222,333,444,555 };

  for (i = 4; i > 0; --i ) { // ケツからアタマ方向に舐めるのがミソ
    vx[i] = vx[i-1];
  }

  for(i =0; i < 5; i++) {
    printf("vx[%d]=%d\n", i, vx[i]);
  }
  return(0);
}

矢頭 2010/06/14(月) 18:50:47
[[解決]]
επιστημη様
 教えて頂きありがとうございました。

矢頭 2010/06/14(月) 20:33:01
すみません。上のは途中送信のミスです。

επιστημη様
 教えて頂きありがとうございました。
以下のように、しっかり作動するプログラムができました。
#include <stdio.h>
#define NUMBER 5

int main(void) {
  int i;
  int vx[5], temp;

  for (i = 0; i < 5; i++) {
        printf("vx[%d]:", i);
        scanf("%d", &vx[i]);
        temp = vx[4];
    }



  for (i = 4; i > 0; --i ) {
    vx[i] = vx[i-1];
  }

  for(i =0; i < 5; i++) {
      vx[0] = temp;
    printf("vx[%d]=%d\n", i, vx[i]);
  }
  return(0);
}

古いスレッドには追加発言できません。