C語言程序設計:模擬簡單運算器的工作



C語言程序設計:模擬簡單運算器的工作


1.題目

​ 模擬簡單運算器的工作,輸入一個算式(沒有空格),遇等號"="說明輸入 結束,輸出結果。假設計算器只能進行加、減、乘、除運算,運算數和結果都是整數,4 種運算符的優先級相同,按從左到右的順序計算。例如,輸入 1+2*10-10/2=后,輸出10。試編寫相應程序。其中的運算部分要求定義函數實現。


2.分析

1).首先他要求我們是輸入一個算式,格式為:【1+2/3*4-5=】 ,輸入輸出結果都為整數

2).計算結果為 -1 ,忽略運算符的優先級,從左往右進行計算

3).算式中含有【=】才說明輸入結束,否則可以一直輸入


3.代碼實現

void calculate()
{
	while (1) {
		char ch;
		int a, sum;
		a = sum = 0;
		int b = 1;
		scanf_s("%d", &a);
		sum = a;
		while (1) {
			ch = getchar();
			if (ch == '=') {
				printf("result = %d\n", sum);
				b = 0;
				break;
			}
			scanf_s("%d", &a);
			switch (ch) {
			case '+':sum += a; break;
			case '-':sum -= a; break;
			case '*':sum *= a; break;
			case '/':
				if (a == 0) {
					printf("error\n");
					b == 0;
				}
				else sum /= a;
				; break;
			default:
				b = 0;
				printf("may be you should input =\n"); break;
			}
			if (b == 0) break;
		}
	}
	return 0;
}

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

4.結尾

此代碼有BUG,輸入錯誤之后得第一次運行結果是會出錯的,第一次接觸C語言,不知道如何寫,歡迎大佬指正。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM