並べ替え
次のようなプログラムを作れ。 1.数値を次々に読み込んで配列に1番目から順に格納する。 2.配列に格納されている数値を逆の順番に並べ換える (最後に読み込んだ数値が配列の1番目に入る)。 3.その配列の内容を1番目から順番に画面に出力する。読み込み、逆転、出力の部分はそれぞれ関数にすること。
という課題をやっています。下のように作ってみたんですが
上手くいかなくて・・・
何処が悪いか教えて下さい。
#include <stdio.h>
#define MAX 100
void reve(int *, int *);
void read(int *, int *);
void write(int *,int *);
int main ()
{
int x[MAX];
int n=0;
read(&n, x);
reve(&n, x);
write(&n, x);
return;
}
void read(int *n, int x[])
{
while(scanf("%d", &x[n]) == 1 ) {
n += 1;
}
return;
}
void reve(int *n, int x[])
{
int i, j, y;
for(i = 0, j = n-1; i <j; i++, j--) {
y = x[j];
x[j] = x[i];
x[i] = y;
}
return;
}
void write(int *n, int x)
{
int i;
for(i = n; i = 0; i--) {
printf("x[%d] = %d\n", i, x[i]);
}
return;
}
補足
ありがとうございました。