/*
**1.使用main函數的參數,實現一個整數計算機,程序可以接受三個參數,
**第一個參數“-a”選項執行加法,“-s”選項執行減法,
**“-m”選項執行乘法,“-d”選項執行除法,後面兩個參數為操作數。
*/
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_math(char *p, int num1, int num2)
{
assert(p);
if (p == "-a")
return num1 + num2;
else if (p == "-s")
return num1 - num2;
else if (p == "-m")
return num1*num2;
else if (p == "-d")
return num1 / num2;
else return 0;
}
int main()
{
char a,b;
char *p=&b;
int num1 = 0;
int num2 = 0;
printf("請輸入要計算的算式:");
scanf("%d%c%d",&num1,&a,&num2); //錄入算式,num1,num2為操作數,a保存的是操作符
while (1) //分別對參數指針p賦值,‘+’,‘-’,‘*’,‘/’,分別對應“-a,-s,-m,-d”,如果別的符號隊p賦‘\0’
{
if (a == '+')
{
p= "-a" ;
break;
}
else if (a == '-')
{
p = "-s";
break;
}
else if (a == '*')
{
p = "-m";
break;
}
else if (a == '/')
{
p = "-d";
break;
}
else *p = '\0';
}
int result = my_math(p, num1, num2); //函數調用,得到結果。
printf("%d%c%d=%d\n",num1,a,num2,result); //分別輸出
system("pause");
return 0;
}
經過驗證,結果正確,注意:錄入算數式的時候不要錄入等號,如要計算5加3,錄入“5+3”即可!