1989年開業 技術士 佐伯英子(情報工学部門) 文部科学省登録番号 第22082号 日本技術士会会員 東大阪商工会議所会員

≫サンプルプログラム一覧 

オープンソース/C言語サンプルプログラム カンタン電卓

●計算式を入力すると、計算結果を表示するプログラムです。
 ≫ソースファイルのダウンロード: dentaku01.c

【問題】
●このプログラムは、12/0 や 12%0 など 0 で割るような式を入力するとエラー
 になる。
 入力された式の演算子が / または % のとき、2つめの数が 0 なら、計算を
 おこなわずに「0では割れません」と表示するように改造してみよう。

/********************/
/*  電卓プログラム  */
/********************/
#include <stdio.h>
#include <stdlib.h>
void  main( )
{
    char  c[128],c1[128],op;
    int   x=0,y=0,z=0,i=0,j;

    printf("\n電卓(Ver.1.0)\n");
    printf("\n計算式: "); gets(c);      // 計算式入力

    //--1つめの数--
    for( j=0; c[i]>='0' && c[i]<='9'; i++ )
     { c1[j]=c[i]; j++; }               // 1文字取り出す
    c1[j]='\0'; x=atoi(c1);             // 整数値に変換

    //--演算子--
    op=c[i]; i++;                       // 演算子を取り出す

    //--2つめの数--
    for( j=0; c[i]>='0' && c[i]<='9'; i++ )
     { c1[j]=c[i]; j++; }               // 1文字取り出す
    c1[j]='\0'; y=atoi(c1);             // 整数値に変換

    //--計算実行--
    switch( op )
      {
        case '+': z=x+y; break;
        case '-': z=x-y; break;
        case '*': z=x*y; break;
        case '/': z=x/y; break;
        case '%': z=x%y; break;
        default : printf("\a");         // ブザー
      }

    printf("\n答: %d\n",z);
}
   

※SSL暗号化通信対応

佐伯英子技術士事務所 〒542-0073 大阪市中央区日本橋 1-14-13 サンオフィス日本橋601  E-mail: yfb22332@nifty.com