私のローカル マシンには、次の内容の「data.in」という名前のファイルがあります。
1
5
6
6
8
10
33
24
20
3
そしてソースコード:
#include <stdio.h>
int main (void)
{
int n,i,a,V[i],ch,aux;
FILE *f1, *f2;
f1 = fopen("data.in", "r");
f2 = fopen("data.out", "w"); //create data.out
char line[1024];
n = 0;
while( fgets(line,sizeof(line),f1) != NULL)
n++; // n = number of lines from the file
for (i=0; i<n; i++)
fscanf(f1,"%d", &V[i]); //reading the array from data.in
do {
ch=0;
for (i=0; i<n-1; i++)
if (V[i]>V[i+1])
{
aux=V[i]; V[i]=V[i+1]; V[i+1]=aux; ch=1;
}
} while (ch); //Bubble sort
for (i=0; i<n; i++)
fprintf(f2, "%d\n", V[i]); // print the array into data.out
fclose(f1);
fclose(f2);
}
コンパイルはうまくいきますが、実行するたびに data.out には以下のみが含まれます。
0
0
0
0
0
0
0
0
0
0
配列だけを印刷しようとしましたが、まだゼロの束です。data.in を変更してすべての数字を同じ行に表示しようとしましたが、出力はまだゼロの集まりにすぎませんでした。私は何かが欠けているに違いない...
私はここで立ち往生しているので、助けていただければ幸いです。