1. 程式人生 > >C語言實現個位數四則運算計算器

C語言實現個位數四則運算計算器

學習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);//若式子出錯則不輸出運算結果
	}
}