-4

C++ では、次のことを実行しています。

cout<<"a["<<i+1<<",<<"j+1<<"]= "; cin>>a[i][j]; 

(表示: "a[1][1]= " および a[0][0] の入力を取得します。基本的に、i+1 は、1 ではなく 0 からの配列を使用したいため、ビューアの単なるトリックですそれはポイントではありません)。

printfとscanfを使用してCでこれを達成するにはどうすればよいですか? どうやらCは好きじゃないらしい

printf("a["<<i+1<<","<<j+1<<"]= "); scanf("%d", a[i][j]);

基本的に、に相当するものは何ですか

<<i+1<< 

C言語で?

4

3 に答える 3

6

C の文字列に対して演算子を使用することはできません<<。C には (多くの) 演算子のオーバーロードがなく、<<「バイナリ シフト左」のみを意味します。

printf("a[%d][%d]=", i + 1, j + 1);
fflush(stdout);
scanf("%d", &a[i][j]);

は改行で終わらないため、直後に入力するのはあまり安全ではありませんfflush()printf()フラッシング (出力ストリーム) はここで役立ちます。入力の読み取りが開始される前に、印刷しているプロンプトが実際に画面を処理するようにします。

于 2012-11-07T15:19:55.273 に答える
0

あなたの質問に直接答えるために<<、Cには演算子に正確に相当するものはありません.printf関数を誤解しているようです. 次のように使用する必要があります。

printf("a[%d][%d]=", i + 1, j + 1);
scanf("%d", &a[i][j]);

scanf&で必要なポインター演算子に注意してください。

于 2012-11-07T15:24:09.823 に答える
0

数字の代わりにフォーマット指定子を使用してそれを行うことができ、他の文字列文字は同じです

于 2012-11-07T15:19:53.573 に答える