自作関数SelectSentenseを他の自作関数にさりげなく追加してメッセージ文を表示してみましょう

アレサ 「さあ、😊次の2つのプログラムをご覧ください。」


#include <stdio.h>


int main(void){

int a=0;

if(a==0) printf("絶好調です\n");

else printf("超好調です\n");

return 0;

}

コンパイル結果

絶好調です


#include <stdio.h>


int main(void){

int b=0;

if(b==0) printf("超絶好調です\n");

else printf("ひたすら好調です\n");

return 0;

}

コンパイル結果

超絶好調です


これらはaやbの値が0かそうでないかによって

異なるメッセージを表示するプログラムです。


aやbの値が0かそうでないかによって

異なるメッセージを表示する

自作関数SelectSentenseを作製してみます


自作関数の定義は


void SelectSentense(int a,int b){


if(a==0) printf("絶好調です\n");

else printf("超好調です\n");

if(b==0) printf("超絶好調です\n");

else printf("ひたすら好調です\n");

return;

}

となります。


このように定義された自作関数SelectSentenseをつかって


プログラムを構成してみます


#include <stdio.h>

void SelectSentense(int a,int b){


if(a==0) printf("絶好調です\n");

else printf("超好調です\n");

if(b==0) printf("超絶好調です\n");

else printf("ひたすら好調です\n");

return;

}


int main(void){


SelectSentense(0,1);

return 0;

}


コンパイル結果


絶好調です

ひたすら好調です


この自作関数SelectSentense(int a,int b)をつかえば


変数a,bに0か1を代入するだけで


好きな方のメッセージを簡単に表示することができます。


ソーラー「自作関数SelectSentense…優雅な響きだね。」


アレサ「ぷぷっ


この自作関数SelectSentenseの面白いところは


さりげなく


他の自作関数に

くっつけることができるところにあります。


以前のエピソードで


int x

int y

に代入された


数値を表示する


次のようなプログラムがありました。


#include <stdio.h>


void Twoprintf (int x,int y){

printf("%d\n",x);

printf("%d\n",y);

return;

}


int main(void){

Twoprintf(1,2);

return 0;

}


コンパイル結果

1

2


このプログラムの自作関数 Twoprintf に

自作関数SelectSentenseを組み込むことができます。


#include <stdio.h>


void SelectSentense(int a,int b){


if(a==0) printf("絶好調です\n");

else printf("超好調です\n");

if(b==0) printf("超絶好調です\n");

else printf("ひたすら好調です\n");

return;

}


void Twoprintf (int x,int y,int a,int b){

printf("%d\n",x);

printf("%d\n",y);

SelectSentense(a, b);

/*自作関数TwoprintfにSelectSentense(a, b);

をくっつけました

それにともない

自作関数Twoprintf の引数は

int x

int y

int a

int b

4つとなりました。

*/

return;

}


int main(void){

Twoprintf(1,2,0,0);

return 0;

}


コンパイル結果


1

2

超好調です

超絶好調です


ソーラー

「さりげに自作関数Twoprintfの引数が


Twoprintf (int x,int y,)の2つから

Twoprintf (int x,int y,int a,int b)の4つにふえてるよね。」


アレサ「そうなのです。


そして 自作関数SelectSentense(a, b)が機能するためには


自作関数Twoprintf の前で


自作関数SelectSentenseの定義が行われている必要がありますね。」


ソーラー「この自作関数SelectSentenseのすごいところは


どんなに複雑な自作関数にも組み込んで


簡単にメッセージ文を追加できるところにあるんだよ。


だから お友達の プログラマーのつくった自作関数に


さりげな~く


この自作関数SelectSentenseをくみこんで 


コンパイル結果に


面白メッセージを表示してあげれば


腰を抜かすことまちがいなしなんだ(^_^)/


その際


次のプログラムのように


自作関数SelectSentense(int a,int b)の定義に


printf("0か1を入力してください\n");


の命令文を追加して


コンパイル結果で


0か1を入力するよう表示し


さらに


scanf関数を追加しておいて


自作関数SelectSentense(int a,int b)の


の引数となっている変数a,bに


0か1の


数値を入力して


メッセージ文を選べるようにすれば


さらに演出効果倍増さ(#^.^#)


#include <stdio.h>


void SelectSentense(int a,int b){


printf("0か1を入力してください\n");

scanf("%d",&a);


if(a==0) printf("絶好調です\n");

else printf("超好調です\n");


printf("0か1を入力してください\n");

scanf("%d",&b);


if(b==0) printf("超絶好調です\n");

else printf("ひたすら好調です\n");

return;

}


void Twoprintf (int x,int y,int a,int b){

printf("%d\n",x);

printf("%d\n",y);

SelectSentense(a, b);

return;

}


int main(void){

Twoprintf(1,2,0,0);

return 0;

}


コンパイル結果

1

2

0か1を入力してください

1(を入力すると)

超好調です。

0か1を入力してください

1(を入力すると)

ひたすら好調です。


ソーラー「コンパイル結果に


0か1を入力してください

1(を入力すると)

超好調です。

0か1を入力してください

1(を入力すると)

ひたすら好調です。


が追加されたわけだね。


お友達も???

思うかな?


このとき

Twoprintf (int x,int y,int a,int b)


Twoprintf(1,2,0,0);


のように

int a=0;

int b=0;


と変数a,変数bが初期化されていますが


scanf関数をつかって


あとから


数値を格納することができるので

if(a==0) printf("絶好調です\n");

else printf("超好調です\n");


if(b==0) printf("超絶好調です\n");

else printf("ひたすら好調です\n");

return;


の中の好きなメッセージを選択できるんだね。


そして

0や1以外の数値が

入力されてもメッセージが表示されるように


else printf文


このif文に設定されているんだね😊


これで


お友達のプログラマーも元気を出すこと間違いなしさ」


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます