C言語関係掲示板

過去ログ

No.41. scanf()で2次元配列への入力


はじめまして  セルマです よろしく
早速質問なんですけど
一次元配列の入力の仕方は分かるのですが
二次元配列が分かりません。
具体的に n行3列の入力なんですけど
#1 10 20 30
#2 50 60 70
という風に入力するにはどうすればいいんですか?
お願いします。


基本的には、1次元でのそれと同じような感じで代入できます。

例・・・
int gyouretsu[2][3] = { {10, 20, 30} , {50, 60, 70} };
と宣言の時に代入してもいいですし

gyouretsu[0][0] = 10;
gyouretsu[0][1] = 20;
gyouretsu[0][2] = 30;


と一つずつ代入して行くことももちろんできます。

詳しくはこのページをご覧下さい。
http://www9.plala.or.jp/sgwr-t/sec9.htm


すみません配列の初期化ではなくて
scanf による キーボードからの入力です。
質問の説明が足りなかったようです。すみません。
while(scanf("%d %d %d",&ten[j][1],&ten[j][2],&ten[j][3])!=EOF && te[j][]>=0){
j++;
ではいけないんでしょうか。


こんにちは、ともじです。

>while(scanf("%d %d %d",&ten[j][1],&ten[j][2],&ten[j][3])!=EOF && te[j][]>=0){
>j++;
>ではいけないんでしょうか。

これは、

while(scanf("%d %d %d",&ten[j][1],&ten[j][2],&ten[j][3])!=EOF
&& ten[j][1]>=0 && ten[j][2]>=0 && ten[j][3]>=0){
j++;

ですね。ただし、添字は0からにした方がいいでしょうね。


ともじさん ありがとうございます。
おかげで先にすすめそうです。
本当にありがとうございました

戻る


「初心者のためのポイント学習C言語」 Last modified:2001.10.5
Copyright(c) 2000-2002 TOMOJI All Rights Reserved