しかし、実際に入力できた回数は1度です。2回、3回と入力させるにはどうしたらいいのかという疑問が生じます。
今回は複数の入力をするための勉強です。
複数入力する場合
さて、今までは入力できたのが一回でしたが、複数入力する場合はどうしたらいいのでしょうか。
とりあえず、簡単なプログラムを書いて「scanf("%d%d", &変数, &変数);」でやってみましょう。
入力は何でもいいですが私は100と101にしてみます。
#include <stdio.h>
int main(void)
{
int no1, no2;
scanf("%d%d", &no1, &no2); /* 入力する部分 */
printf("[%d][%d] 。¥n", no1, no2);
return 0;
}
ここでちょっと新しいことを勉強します。
「/* 入力する部分 */」はコメントです。プログラムが複雑になっていくとどれがどの処理をするか分からなくなってしまいますよね。
そんな時に /* */ で囲ってやるとその部分にコメントが付け加えられます。
また、コメントはプログラムを実行したときに一切影響を受けません。
さらにどこに書いても、行をまたいで書いてもOKです。
ここではこんな処理をするんだということを書いておくとプログラムがより読みやすくなります。
不要だと感じた場合は本当に書かなくて結構です。
さて、どうやって複数に分けてやればいいでしょうか。
とりあえずEnterキーをおして100と101を区切って入力してみてください。
実行結果
100↵
101↵
[100][101]
複数入力するときはこのようにEnterキーで改行してやることで複数のデータを認識していきます。
入力してから「改行(Enterキー)」してやるとこんな感じになると思います。
ちなみにスペースやTabキーで区切っても大丈夫です。
重要なのはプログラムを実行して入力するときEnterキー・Tabキー・スペースで区切ってやるということです。
応用
さあ、この「scanf関数」を使用することでかなり幅が広がります。
なぜかというと、もう分かる方もいるかと思いますが、「数値を自由に指定できる」ので
例えば三角形の面積を求めるプログラムを作るとき、公式さえプログラムに組み込んでやれば後は実行中に数値をキーボードから入力してやるだけになります。
まあ、試しに作ってみましょう。
三角形の面積の求め方は「底辺×高さ÷2」ですよね。
奇数同士だと整数で割り切れないので実数を使い、「小数点第一」まで求めるようにしましょう。
変数の宣言は、底辺と高さだけでもかまいませんが、ここでは答えの部分も宣言して計算式を代入してやります。
#include <stdio.h>
int main(void)
{
double bottom, high, sum;
/* 入力 */
printf("三角形の面積を求めます。数字を入力後Enterキーを押してください。¥n");
printf("底辺を入力してください:"); scanf("%lf", &bottom);
printf("高さを入力してください:"); scanf("%lf", &high);
/* 三角形の面積の計算 */
sum = bottom * high / 2;
/* 表示 */
printf("三角形の面積は「%.1f」です。¥n", sum);
return 0;
}
入力値は各々で決めてください。
実行結果
三角形の面積を求めます。数字を入力後Enterキーを押してください。
底辺を入力してください:13↵
高さを入力してください:9↵
三角形の面積は「58.5」です。
こんな風に作ってみました。ちょっと見てみましょう。
printf("底辺を入力してください:"); scanf("%lf", &bottom);
printf("高さを入力してください:"); scanf("%lf", &high);
という風にやってやるとプログラムを使用する人にとってわかりやすいですよね。
printf("底辺を入力してください:"); scanf("%lf", &bottom);
と一行で書いていますが、文の終わりには「;(セミコロン)」をつければよかったですよね。
また、フリーフォーマットだということを思い出していただければこういう風に書けるというのが分かると思います。
それだけでなく底辺に対し、bottomをscanf関数で読み取るというのが見ただけである程度理解できると思います。
こういった書き方の工夫も理解しやすくプログラムを書く秘訣だと思います。
また、コメントをつけてやることでどの部分がどの処理をするかがとても分かりやすいと思います(多分)。
他に、
sum = bottom * high / 2
と書きました。これもプログラムを理解しやすくするための工夫です。
printf関数のときに計算させてもいいのですが、それだと見づらい場合もあります。
こんな風に最終的に表示させたい答えの部分を変数として宣言して、どういった計算をさせるのかということを書いてやるのをオススメします。
プログラムは自分が分かればいいのではなく、他の人が理解しやすく、また使用者が使いやすいように作るのが一番だと思います。
メニューへ戻る
タグ:C言語
↓もしこの記事が役に立ったらクリックお願いします。


【プログラミング>C言語の最新記事】
ひとつ質問なのですが、上記でこの部分↓
----------------------------------------
#include <stdio.h>
int main(void)
{
int no1, no2;
scanf("%d", &num); /* 入力する部分 */
printf("[%d][%d] 。\n", no1, no2);
return 0;
}
----------------------------------------
これを入力しても出来ないのですが、自分なりに下記のように
打ち直したらうまく言ったのですが、他に違うやり方等ございましたら
教えてください。
----------------------------------------
#include <stdio.h>
int main(void)
{
int no1,no2;
scanf("%d %d",&no1,&no2);/*入力する部分*/
printf("[%d][%d]。\n",no1,no2);
return 0;
}
-----------------------------------------
「;」がぬけているから
sum = bottom * high / 2;