質問: ### 前提・実現したいこと 固定された入力方法からデータを配列に代入したい (a[][]には数字を、A[]には文字を入れたい) ### 発生している問題・エラーメッセージ 入力に 30 a 1 23 60 78 90 c 0 78 93 32 50 といった数字と文字を半角スペースと改行で区切ったデータをscanfで読み取りたいのですがprintfで出力してもaの配列に0しか入っていません。 ### 該当のソースコード ``` #include int N,i,j,sum=0; char A[50]={}; int a[50][7]={0}; scanf("%d",&N); for(i=0;i
回答: 改行読み飛ばしの指定に誤りがあります。 i==0のときも\nを読み飛ばさないと、%cの後にアルファベットが残ったままになります。だから直後の%dで読み込めないのです。 蛇足:scanfの使用方法に誤りがあります。 読み込み用変数は、アドレスを指定する必要があります。つまり、A[i]ではなく、&A[i]と指定しなければいけません。 アドレスに0を指定しており、クラッシュしてもおかしくないです。