对于三个数的运算
#include<stdio.h>
int main()
{
float a,b,c,d;
char op,opo,opoo; //在此op,opo代指运算符,opoo代指回车
scanf("%f%c%f",&a,&op,&b);
switch(op)
{
case'+':
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a+b);
break;
case'-':
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a-b);
break;
case'*':
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a*b);
break;
case'/':
if(b==0)
printf("error\n");
else
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a/b);
break;
default:printf("error..\n");
}
scanf("%c%c%f",&opoo,&opo,&d); //opoo在这里是表示回车
switch(opo)
{
case'+':
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c+d);
break;
case'-':
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c-d);
break;
case'*':
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c*d);
break;
case'/':
if(d==0)
printf("error.\n");
else
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c/d);
break;
default:printf("error\n");
}
return 0;
}
运行结果如图(两次输入数据,即第一行和第三行)
若无opoo字符,则如下
#include<stdio.h>
int main()
{
float a,b,c,d;
char op,opo;
scanf("%f%c%f",&a,&op,&b);
switch(op)
{
case'+':
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a+b);
break;
case'-':
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a-b);
break;
case'*':
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a*b);
break;
case'/':
if(b==0)
printf("error\n");
else
printf("%6.2f%c%6.2f=%6.2f\n",a,op,b,c=a/b);
break;
default:printf("error..\n");
}
scanf("%c%f",&opo,&d); //同上面只少了opoo
switch(opo)
{
case'+':
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c+d);
break;
case'-':
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c-d);
break;
case'*':
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c*d);
break;
case'/':
if(d==0)
printf("error.\n");
else
printf("%6.2f%c%6.2f=%6.2f\n",c,opo,d,c/d);
break;
default:printf("error\n");
}
return 0;
}
运行结果(只输入一次数据)