数値が変わる部分をもつ文章を表示する自作関数Sentenseを作製してみましょう
ソーラー「さきほどは
普通の文章を表示する自作関数を作製したけど
文章内に 数値が変わる部分をもつ
つまり
文章内に%d出力変換指定子がくみこまれている
文章を表示する自作関数を
作製してみよう
🌞
その自作関数は次のようになるかなっと
#include <stdio.h>
void Sentense (int a){
printf("数値%d番のお席にお座りください\n",a);
return;
}
int main(void){
Sentense (1);
return 0;
}
コンパイル結果
数値1番のお席にお座りください
ソーラー 「この自作関数Sentense をつかえば
Sentense(int a)の引数となっている変数aにいろいろな数値を代入して
コンパイル結果を変更させることができるってわけなんだ。
どう?アレサ(*´▽`*)
変数aに10を代入すれば
#include <stdio.h>
void Sentense (int a){
printf("数値%d番のお席にお座りください\n",a);
return;
}
int main(void){
Sentense (10);
return 0;
}
コンパイル結果
数値10番のお席にお座りください
変数aに1を代入すれば
#include <stdio.h>
void Sentense (int a){
printf("数値%d番のお席にお座りください\n",a);
return;
}
int main(void){
Sentense (10);
return 0;
}
コンパイル結果
数値1番のお席にお座りください
という具合にだね。」
アレサ「そうですね。
自作関数の引数となっている
変数aに代入する値をかえることによって
好きな数値が組み込まれた文章を表示できますね。
次のように
自作関数Sentenseの引数となっている変数aに代入される値を
変更しながら
自作関数Sentenseを5回実行すると 次のような結果になります。」
#include <stdio.h>
void Sentense (int a){
printf("数値%d番のお席にお座りください\n",a);
return;
}
int main(void){
Sentense (10);
Sentense (100);
Sentense (1000);
Sentense (10000);
Sentense (100000);
return 0;
}
コンパイル結果
数値10番のお席にお座りください
数値100番のお席にお座りください
数値1000番のお席にお座りください
数値10000番のお席にお座りください
数値100000番のお席にお座りください
アレサ「自作関数をつくらず
直接
printf("数値%d番のお席にお座りください\n",a);
の変数aに
数値
10
100
1000
10000
100000
をひとつずつ代入して命令文
printf("数値%d番のお席にお座りください\n",10);
printf("数値%d番のお席にお座りください\n",100);
printf("数値%d番のお席にお座りください\n",1000);
printf("数値%d番のお席にお座りください\n",10000);
printf("数値%d番のお席にお座りください\n",100000);
を実行する方法もありますが
今のプログラムのように
自作関数Sentenseを作製すれば
自作関数Sentenseの引数int aに
Sentense (10);
Sentense (100);
Sentense (1000);
Sentense (10000);
Sentense (100000);
と
数値
10
100
1000
10000
100000
を代入することにより
数値10番のお席にお座りください
数値100番のお席にお座りください
数値1000番のお席にお座りください
数値10000番のお席にお座りください
数値100000番のお席にお座りください
を簡単に表示することができます。」
さらに
scanf関数を導入し
自作関数Sentense(a)の引数aに
数値をユーザーから代入するようプログラムを作製してみます。
#include <stdio.h>
void Sentense (int a){
printf("数値%d番のお席にお座りください\n",a);
return;
}
int main(void){
for(;;){
int b;
scanf("%d",&b);
Sentense (b);}
return 0;
}
コンパイル結果
1(と打ち込むと)
数値1番のお席にお座りください
8(と打ち込むと)
数値8番のお席にお座りください
5(と打ち込むと)
数値5番のお席にお座りください
7(と打ち込むと)
数値7番のお席にお座りください
2と打ち込むと)
数値2番のお席にお座りください
.
.
.
アレサ
「この場合では
自作関数 Sentense を作製、使用せずとも
#include <stdio.h>
int main(void){
for(;;){
int b;
scanf("%d",&b);
printf("数値%d番のお席にお座りください\n",b);}
return 0;
}
このようにプログラムを記述しても
それほど手間はかわらないのです
先程の場合と違い
数値は 自分でなくユーザーの方がうちこんでくれますからですの
scanf関数をつかわず
自分であらかじめ
printf("数値%d番のお席にお座りください\n",b);
に
数値を打ち込んで
コンパイル結果
数値1番のお席にお座りください
数値8番のお席にお座りください
数値5番のお席にお座りください
数値7番のお席にお座りください
数値2番のお席にお座りください
を表示するなら
printf("数値%d番のお席にお座りください\n",1);
printf("数値%d番のお席にお座りください\n",8);
printf("数値%d番のお席にお座りください\n",5);
printf("数値%d番のお席にお座りください\n",7);
printf("数値%d番のお席にお座りください\n",2);
と命令文を記述することになりますね。
その際
自作関数の定義
void Sentense (int a){
printf("数値%d番のお席にお座りください\n",a);
return;
}
を
おこなえば
Sentense (1);
Sentense (8);
Sentense (5);
Sentense (7);
Sentence (2);
と記述すればよくなり
プログラミングの手間が省けるというわけです。
このプログラムではscanf関数がつかわれていたので
自作関数Sentenseを作製する必要は
ありませんでしたが
プログラムの他の場所で
printf("数値%d番のお席にお座りください\n",b);
を多用することが あれば
自作関数 Sentenseを作製
して
Sentense(b);
を記述したほうが効率がよいのかもしれません。」
ソーラー「ここら辺は 微妙なところだね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます