C語言實現個位數四則運算計算器
阿新 • • 發佈:2018-12-10
學習C語言不久,設計了一個簡單的計算器,要求輸入數字均為個位數(老師的要求= =),可加減乘除,帶糾錯功能。
#include<stdio.h> void main() { { printf("請輸入四則運算式子 (要求:不能有括號,均為個位數。計算器帶糾錯功能)\n"); char x[1000]={'\0'};//限定式子長度在1000內 gets(x); double a[1000]={0},sum=0; int i,error=0; for(i=0;;i++)//先糾錯 { if(x[i]=='\0')//判斷式子是否到頭 { break; } else if(x[i]!='0'&&x[i]!='1'&&x[i]!='2'&&x[i]!='3'&&x[i]!='4'&&x[i]!='5'&&x[i]!='6'&&x[i]!='7'&&x[i]!='8'&&x[i]!='9'&&x[i]!='+'&&x[i]!='-'&&x[i]!='*'&&x[i]!='/') {//判斷是否出錯 printf("運算式出錯!\n僅能輸入個位數及+-*/\n"); error=1;//用error變數代表式子出錯 break; } else if(x[i]=='1')a[i]=1.0;//將輸入的數字字元轉化為變數中的數字 else if(x[i]=='2')a[i]=2.0; else if(x[i]=='3')a[i]=3.0; else if(x[i]=='4')a[i]=4.0; else if(x[i]=='5')a[i]=5.0; else if(x[i]=='6')a[i]=6.0; else if(x[i]=='7')a[i]=7.0; else if(x[i]=='8')a[i]=8.0; else if(x[i]=='9')a[i]=9.0; } if(x[1]=='-')a[2]=-a[2];//判斷第一個輸入的是不是負號 for(i=0;;i++)//然後判斷乘除 { if(x[i]=='\0')break; else if(x[i]=='*') { a[i+1]=a[i-1]*a[i+1]; a[i-1]=0;//去掉運算前的結果 } else if(x[i]=='/') { a[i+1]=a[i-1]/a[i+1]; a[i-1]=0; } } for(i=0;;i++)//再判斷加減 { if(x[i]=='\0')break; else if(x[i]=='-') { a[i+1]=a[i-1]-a[i+1]; a[i-1]=0; } } for(i=0;;i++)//最後求和 { if(a[i]!=0)sum+=a[i]; if(x[i]=='\0')break; } if(error!=1)printf("運算結果為%g\n\n",sum);//若式子出錯則不輸出運算結果 } }