C言語のきほん「簡易電卓プログラム(1)」

スポンサーリンク
C言語

今回は、「簡易電卓プログラム」をご紹介しよう。

数値を入力すると四則演算をして、計算結果を表示する。
そして、計算結果をクリアすると、また新しい四則演算を行うプログラムである。

なお、本プログラムは、
 Windows 11 Home(23H2)上で、Visual Studio Code(1.94.0)を使用して作成し、gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0でコンパイルしている。


//簡易電卓プログラム(第1版)

#include <stdio.h>
#include <string.h>
double result = 0.0;
char str[2];

//計算関数
double keisan(void){
    double num;
    printf("簡易電卓プログラム\n");
    printf("四則演算ができます。(+,-,*,/)入力例-> 3+5,続けて入力する-> *8,計算結果のクリア->c,終了->q;\n");
    printf(">");

    if (scanf("%lf", &result) != 1)
    {
        printf("計算できません\n");
        return 0;
    }
           
       
    do
    {
        //演算子の入力
        if (scanf("%1s", str) != 1)
        {
            break;                      // 入力が正常でなければループを終了
        }
       
        if (strcmp(str, "c") == 0)
          {
                printf("クリアします!\n");
                result = 0.0;              // "c" が入力された場合クリア
                keisan();
         }
        else if (strcmp(str, "q") == 0)
        {
            printf("終了します!\n");
            return 0;                       // "q" が入力された場合、計算を終了
        }
         
        
        // 数値の入力
        if (scanf("%lf", &num) != 1)
        {
            break;                       // 入力が正常でなければループを終了
        }
        switch (str[0])
        {
        case '+':
            result += num;
            break;
        case '-':
            result -= num;
            break;
        case '*':
            result *= num;
            break;
        case '/':
            if (num == 0.0)
            {
                printf( "ゼロでの除算はできません\n" );
                return 0;
            }
            result /= num;
            break;
       
        default:
            printf("演算記号の指定が違います\n");
            return 0;
        }
        printf("計算結果:%g\n", result);
    
  
    } while (1);
     return 0;
}

int main()
{
    keisan();
      
    return 0;
}

実行結果

簡易電卓プログラム
四則演算ができます。(+,-,*,/)入力例-> 3+5,続けて入力する-> *8,計算結果のクリア->c,終了->q;
>3+9
計算結果:12
c
クリアします!
簡易電卓プログラム
四則演算ができます。(+,-,*,/)入力例-> 3+5,続けて入力する-> *8,計算結果のクリア->c,終了->q;
>2+9
計算結果:11
q;
終了します!

本プログラムは、これまで当ブログで紹介してきた、if文、do while文、switch文など基本的な機能で作成してある。

ただし、まだ改良の余地はあるので、今後も随時改訂版をご紹介していこうと考えている。

コメント

タイトルとURLをコピーしました