納得C言語!
演習問題U 第2問の解答
2 6回の練習問題で作ったプログラムを改良してみよう!
解答プログラム
#include <stdio.h>
//プロトタイプ宣言
int add(int i,int n);
int sub(int i,int n);
int mul(int i,int n);
int div(int i,int n);
int main()
{
int s = 0,a = 0,b = 0,c = 0; //変数の宣言と初期化
while(1){
printf("\n簡易計算機\n");
printf("加算=>1, 減算=>2 ,乗算=>3 ,除算=>4 ,終了=>0\n");
printf("\nどの計算をしますか =");
scanf("%d",&s);
if(s == 0){ //s == 0 の場合break で抜ける
printf("終了します\n");
break;
}
printf("数値Aを入力してください=");
scanf("%d",&a);
printf("数値Bを入力してください=");
scanf("%d",&b);
switch(s){
case 1:
//入力した値a,bを関数add()に引数として渡し、返ってきた結果をcに代入
c = add(a,b);
printf("加算A+Bの答えは%d\n",c);
break;
case 2:
//入力した値a,bを関数sub()に引数として渡し、返ってきた結果をcに代入
c = sub(a,b);
printf("減算A-Bの答えは%d\n",c);
break;
case 3:
//入力した値a,bを関数mul()に引数として渡し、返ってきた結果をcに代入
c = mul(a,b);
printf("乗算A*Bの答えは%d\n",c);
break;
case 4:
//入力した値a,bを関数div()に引数として渡し、返ってきた結果をcに代入
c = div(a,b);
printf("除算A/Bの答えは%d\n",c);
break;
default:
printf("数値が正しくありません\n");
}
}
return 0;
}
int add(int i,int n) //自作関数add
{
int kai;
kai = i + n; //加算
return kai; //kaiを返す
}
int sub(int i,int n) //自作関数sub
{
int kai;
kai = i - n; //減算
return kai; //kaiを返す
}
int mul(int i,int n) //自作関数mul
{
int kai;
kai = i * n; //乗算
return kai; //kaiを返す
}
int div(int i,int n) //自作関数div
{
int kai;
kai = i / n; //除算
return kai; //kaiを返す
}
解説
何度も計算させる場合はwhile文で無限ループを作ってしまいます。
また、ループから抜ける場合はif文で0が入力されたかを判定しbreakを使用します。
自作関数ですが、今回は計算結果をmain関数に返しているのでint型を宣言します。
また、自作関数を作成する場合にはmain関数より前でプロトタイプ宣言をする必要があるので、忘れないようにしましょう。
あとがき
お久しぶりです。その後C言語学習はいかがですか?
この学習項目もついに8回です!やっと学習コンテンツの折り返し・・・ではないですね。
4合目到達と言ったところでしょうか。
「難しいな」と思っている方も少なくないと思います。
事実私もC言語学習当初はまったく分かりませんでした(てへっ
ですがプログラムを沢山書いたり、自分でプログラムを作成していくうちに「難しい」から「面白い」に変わりました。
今、「うーん難しい」と思っている方はもう少しがんばってみましょう!