前提・実現したいこと
以下のプログラムにおいて入力として
3
0:1:10:2.000
0:2:10:4.000
1:2:10:3.000
と与えるのですが,3をeという変数に格納するのですが
直後のprintf文では3と出力されますが
最後の方のprint文では0と出力され値が変更されてしまっている原因がわかりません.
ご教示願います.
該当のソースコード
C
1#include<stdio.h> 2#include<stdlib.h> 3char buf[256]; 4 5int main() { 6 int e; 7 scanf("%d ", &e); 8 printf("e = %d\n",e); //ここでは読み込んだ値(3)が出力されます。 9 int adjmat[e][e]; 10 int eki1, eki2, i, j; 11 int a; 12 float b; 13 /* 0で初期化 */ 14 for(i=0; i<e; i++) 15 for(j=0; i<e; j++) 16 adjmat[i][j] = 0; 17 18 while(fgets(buf,sizeof(buf),stdin)!=NULL) { 19 sscanf(buf, "%d:%d:%d:%f␣", &eki1, &eki2, &a, &b); 20 adjmat[eki1][eki2] = adjmat[eki1][eki2] = 1; 21 } 22 printf("e = %d\n",e); //ここで0と出力されてしまいます。 23 for(i=0; i<e; i++) 24 for(j=0; i<e; j++) 25 printf("%d\n", adjmat[i][j]); 26 27 return 0; 28} 29 30
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/22 14:51