大学で以下のような課題が出ました。でも全然わかりません。わかる方がいらっしゃったら、是非教えてほしいです★
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=
No.1ベストアンサー
- 回答日時:
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/
丁寧な回答ありがとうございました!!
C言語は正直言ってほとんど理解していません。
変数型は知ってます。
1、2、3、4の問題はなんとなく解りました!
5のscanf関数は習ってないので解りませんが、がんばってやってみようと思います!
ところで4はgetcharとかは使わないですかね?
参考サイトまで教えていただき本当にありがとうございました!
早速、参考にしたいと思います!
No.2
- 回答日時:
>ところで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でも全く問題ないと思います。
お礼のお返事遅くなり失礼しました!
1度お礼をしたんですが、なぜか表示されてませんでした。
改めて
なるほど。getcharは1桁の数値しかだめなのですね。
わざわざ丁寧な解答ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
Eclipseコンソール表示を、リセ...
-
C++ scanfで止まらない
-
Linuxで入力待ちなしkeyread関...
-
WindowsでEOF
-
C言語のプログラム作成の課題...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
VisualStudio2019のコードアナ...
-
コマンドプロンプトからのEOFの...
-
C言語・YesNo入力のループで解...
-
Linuxプログラミングで、キーボ...
-
コマンドラインから引数を渡し...
-
入力候補を表示させるには・・・?
-
至急教えてください。プログラ...
-
scanfについて
-
ヒントをください!
-
scanf関数について
-
小数か整数かを判定する方法
-
C言語の勉強しています。すみま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
Linuxで入力待ちなしkeyread関...
-
batプログラム上で文字列を入力...
-
WindowsでEOF
-
Userformの入力順序をタブオー...
-
コマンドプロンプトからのEOFの...
-
EDITコントロールで入力できる...
-
VisualStudio2019のコードアナ...
-
電卓の小数点
-
Eclipseでコマンドラインを入力...
-
小数か整数かを判定する方法
-
cout関数を使っているのですが...
-
UWSCで変数をキー入力
-
ワードで文字を入力する時の変...
おすすめ情報