配列がずれてしまう
C言語初心者です。
二次配列を組んだのですが、初期では正常に配列に入ったのですが、
次回のループで入っていた筈の数値がズレてしまいます。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE *fp; // FILE型構造体
char fname[] = "c:\\tmp\\test.txt";
int f1, f2, f3, f4, f5;
int i,p,s;
int r_table[1100][4];
//ファイル読み込み用構造体
for(i=0;i<1100;i++){
for(p=0;p<4;p++){
r_table[i][p]=0;
}
}
fp = fopen(fname, "r"); // ファイルを開く。失敗するとNULLを返す。
if(fp == NULL) {
printf("%s file not open!\n", fname);
return -1;
}
i=0;
while(fscanf(fp, "%d %d %d %d %d", &f1, &f2, &f3, &f4, &f5) != EOF) { //数字の格納
r_table[i][0]=f1;
r_table[i][1]=f2;
r_table[i][2]=f3;
r_table[i][3]=f4;
r_table[i][4]=f5;
printf("%d %d %d %d %d\n", r_table[i][0],r_table[i][1],r_table[i][2],r_table[i][3],r_table[i][4]);
i++;
}
fclose(fp); // ファイルを閉じる
printf("\n");
for(s=0;s<10;s++){ //数字の抜出 10回ループ
printf("%d %d %d %d %d\n", r_table[s][0],r_table[s][1],r_table[s][2],r_table[s][3],r_table[s][4]);
}
return 0;
}
実行結果
9 13 14 19 22
1 14 25 29 31
4 12 15 22 25
3 13 18 19 22
2 8 14 17 26
1 3 4 9 16
2 18 19 28 30
9 10 16 17 28
9 13 14 19 1
1 14 25 29 4
4 12 15 22 3
3 13 18 19 2
2 8 14 17 1
1 3 4 9 2
2 18 19 28 9
9 10 16 17 28
どうやら、r_table[s][4]にr_table[s+1][0]が入ってしまっているように見られます。
どの部分が間違っているのかご教示頂けたらと思います。