本题要求实现两个整数的运算,运算符仅有四种:+、-、* 、/ ,但是以字符串的形式输入表达式。注意这里的除数结果是整数,即5/4=1。
函数接口定义:
int cal( char *a );
其中 a
是用户传入的参数,此处为表达式,表达式。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
int cal( char *s );
int main()
{
char a[100];
int res;
scanf("%s",a);
res=cal(a);
printf("%d",res);
return 0;
}
/* 请在这里填写答案 */
输入样例:
123+12=
输出样例:
135
代码实现(C语言)
int cal( char *s )
{
int count1=0,count2=0,c[100],d[100],num=0,c1=0,d1=0,i,aaa=0;
while(s[num++]);
num--;
for(i=0;i<num;i++)
{
if(s[i]>='0'&&s[i]<='9')
c[count1++]=s[i]-'0';
else
break;
}
for(i=count1+1;i<num;i++)
{
if(s[i]>='0'&&s[i]<='9')
d[count2++]=s[i]-'0';
else
break;
}
for(i=count1-1;i>=0;i--)
{
c1+=c[i]*pow(10,count1-i-1);
}
for(i=count2-1;i>=0;i--)
{
d1+=d[i]*pow(10,count2-i-1);
}
switch(s[count1])
{
case '+':aaa=c1+d1;break;
case '-':aaa=c1-d1;break;
case '*':aaa=c1*d1;break;
case '/':aaa=c1/d1;break;
}
return aaa;
}