计算表达式
#include<cstdio>
using namespace std;
int main()
{
char ch;
int i,j,temp,a[200];
while(scanf("%d",&temp)!=EOF)
{
i=1;
a[0]=0;
a[1]=temp;
while(scanf("%c",&ch)!=EOF && ch!='\n')
{
scanf("%d",&temp);
if(ch=='-')a[++i]=-temp;
else if(ch=='+')a[++i]=temp;
else if(ch=='*')a[i]*=temp;
else if(ch=='/')a[i]/=temp;
}
for(j=1;j<=i;++j)
a[0]+=a[j];
printf("%d\n",a[0]);
}
return 0;
}
这个题很有意思的一点是。。很灵性,说不出的感觉,反正我感觉这才叫程序,没有那么多的模板,写的很随意又到位。
2、分数加减法
#include<stdio.h>
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a,b,c,d,sum1,sum2,f,flag;
char o;
while(~scanf("%d/%d%c%d/%d",&a,&b,&o,&c,&d))
{
flag=0;
sum2=b*d;
if(o=='+')
{
sum1=a*d+b*c;
}
else if(o=='-')
{
sum1=a*d-b*c;
}
f=gcd(sum1,sum2);
if(sum1==0)
printf("0\n");
else if(sum2/f==1)
printf("%d\n",sum1/f);
else
{
if(sum1<0&&sum2<0)
{
sum1=-sum1;
sum2=-sum2;
}
else if(sum1<0&&sum2>0)
{
sum1=-sum1;
flag=1;
}
else if(sum1>0&&sum2<0)
{
sum2=-sum2;
flag=1;
}
f=gcd(sum1,sum2);
if(flag==0)
printf("%d/%d\n",sum1/f,sum2/f);
else if(flag==1)
{
printf("-%d/%d\n",sum1/f,sum2/f);
}
}
}
这一题算比较规范的,可以拿来做模板用,也很简单