第5講 関数の学習
第7話 花子は3人の中で誰が好き・・・解答例

花子は3人の中で誰が好き・・・解答例
#include<iostream>
#include<string>
#include <time.h>
using namespace std;
int f();
string g(int a);
void main(){
   srand(time(NULL));
   cout<<"花子は3人の中で誰が好き?"<<endl;
   char a;
   a=f();
   cout<<g(a)<<endl;
}
int f(){
   char a;
   a=rand()%3;
   return(a);
}
string g(int a){
   string w,x,y,z;
   w="次郎";
   x="太郎";
   y="三郎";
   z="だよ。";
   if(a==0)return(w+z);
   if(a==1)return(x+z);
   if(a==2)return(y+z);
}
実行画面例
m

『幼なじみはPで、好きなのはQで、愛しているのはRだ。』解答例
#include<iostream>
#include<string>
#include <time.h>
using namespace std;
int f();
string g(int a);
void main(){
   srand(time(NULL));
   cout<<"花子は3人の中で誰が好き?"<<endl;
   char a;
   a=f();
   cout<<g(a)<<endl;
}
int f(){
   char a;
   a=rand()%6;
   return(a);
}
string g(int a){
   string x;
   if(a==0)x="幼なじみは次郎で、好きなのは太郎で、愛しているのは三郎だ。";
   if(a==1)x="幼なじみは次郎で、好きなのは三郎で、愛しているのは太郎だ。";
   if(a==2)x="幼なじみは太郎で、好きなのは次郎で、愛しているのは三郎だ。";
   if(a==3)x="幼なじみは太郎で、好きなのは三郎で、愛しているのは次郎だ。";
   if(a==4)x="幼なじみは三郎で、好きなのは太郎で、愛しているのは次郎だ。";
   if(a==5)x="幼なじみは三郎で、好きなのは次郎で、愛しているのは太郎だ。";
   return(x);
}

実行画面例
b

難しい課題で申し訳ありません。
3人の順列ですから、3!=3×2×1=6(通り)あったわけです。
もし、選択肢が3人ではなく10人
(一郎、次郎、三郎、四郎、五郎、六郎、七郎、八郎、九郎、十郎)
であったとすれば、
10×9×8=720(通り)もあり、
今回の全パターンを用意する手法では、
手に負えなくなります。
ですが、これを簡単に解決する方法はあるのです。
それは、第9講で学ぶ予定になっている関数の再帰的使用という手法です。

さて、皆さん次のように二人の部下が、
お互いに仕事を依頼し合ったらどうなるでしょうか。
#include<iostream>
using namespace std;
void f();
void g();
void main(){
   f();
}
void f(){
   cout<<"gさんお仕事お願いします。"<<endl;
   g();
}
void g(){
   cout<<"fさんお仕事お願いします。"<<endl;
   f();
}


第6話へ 第8話へ

a

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ