「覚え間違い」を教えてください!

大学で以下のような課題が出ました。でも全然わかりません。わかる方がいらっしゃったら、是非教えてほしいです★

1整数値123を変数iに代入して、iの値を表示するプログラムを作成せよ。

2実数値3.14159を変数xに代入して、xの値を表示するプログラムを作成せよ。

3文字型せーた'A'を変数chに代入して、chの値を表示するプログラムを作成せよ。ただし、chの値を表示する際には、%d,%x,%cの書式を用いること。

4キーボードから入力された2つの整数値i,jの値を画面に表示するプログラムを作成せよ。

5キーボードから2つの整数値を、変数in1とin2に入力して、以下の計算をした結果を画面に表示するプログラムを作成せよ。
in1+in2=
in1-in2=
in1*in2=
in1/in2=
in1%in2=

A 回答 (2件)

C言語はどの程度理解してらっしゃいますか?


それによって回答の仕方も変わってくるのですが…

変数の型についてはご存知ですか?
int型=整数とか、float型=浮動小数点とか…
1の場合、「整数値を代入」とされているので、使用するのはint型ですね。
答)
int i=123;
printf("%d", i);

同じ要領で、2、3もそれぞれの問題にあった型を使用してください。
%d,%x,%cというのは、ただchの中身を表示するのではなくて、色々なフォーマットで表示してみよう。
という事だと思います。
例えば…
printd("%d", ch);
%dは整数値を表示する時に使用しますが、chの中に入っているのは'A'という文字です。
これは一体どう表示されるのでしょうか?
答えはAの文字コードです。
他の%xや%cも表示してみて、結果をご覧下さい。
なかなか興味深いですよ。

4はこれまでの応用ですね。
printf("%d", i);
では、iの中身しか表示できません。
これを2つ一緒に表現しようとすると、どうすれば良いでしょう?

5も同じく応用問題です。
scanf関数なりを使用して、キーボードから値を取得して計算させれば良いですね。
例)
scanf("%d", &in1);
あとは計算用に変数を一つ用意するもよし、計算させながら表示するもよし…
この辺はお好みで。

MSDN等とにらめっこしながら考えてみてください。

参考URLはC、C++について解説されているページです。
是非参考にしてください。

参考URL:http://www.kumei.ne.jp/c_lang/
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございました!!
C言語は正直言ってほとんど理解していません。

変数型は知ってます。
1、2、3、4の問題はなんとなく解りました!
5のscanf関数は習ってないので解りませんが、がんばってやってみようと思います!
ところで4はgetcharとかは使わないですかね?

参考サイトまで教えていただき本当にありがとうございました!
早速、参考にしたいと思います!

お礼日時:2002/07/05 02:00

>ところで4はgetcharとかは使わないですかね?


もちろんgetcharでもできますよ。
ただgetcharはint型の文字コードを返すので、
例え整数を入力されても
printf("%d", i);
では正しく表示されないんですよ。
この場合、
printf("%c", i);
とします。
さらに問題になるのが%cは「1文字表示するよ」
という意味なので、「12」と入力されても「1」としか
表示されません。
「文字列を表示するよ」という意味の%sに変えてみると、
引数の型が合わずにエラーが出ます。
これを回避して、正しく入力された文字列を表示するには
下記のようにちょっと手間をかけないといけません。
 for( i = 0; (i < 80) && ((ch = getchar()) != EOF) && (ch != '\n'); i++ )
 {
  buffer[i] = ch;     // 一文字ずつ読み込んで配列に格納
 }
 buffer[i] = '\0';     // 文字の終わりの印を入れる
 printf( "%s\n", buffer ); // 表示

4の場合は、整数を2つ入力してもらわないといけないので、
こんな手間なことを2回もするくらいなら、5と同様にscanfを使用する方が良いと思います。
「1桁の数値しか入力しない」というお約束があった場合はgetcharでも全く問題ないと思います。
    • good
    • 0
この回答へのお礼

お礼のお返事遅くなり失礼しました!
1度お礼をしたんですが、なぜか表示されてませんでした。

改めて
なるほど。getcharは1桁の数値しかだめなのですね。
わざわざ丁寧な解答ありがとうございました!!

お礼日時:2002/07/14 22:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報