简易计算器的编程环节出了问题,新手求助,c语言

#include<stdio.h>
main()
{
int data1,data2,res;
char op;
scanf("%d %d %c",&data1,&data2,&op);
if (op==47)
{
int yu;
yu=data1%data2;
double shang;
shang=(double)data1/data2;
if(yu!=0)
printf("%7.2lf",shang);
else
res=data1/data2;
printf("%d",res);
}
else
switch(op)
{
case '+':res=data1+data2,printf("%d",res);break;
case '-':res=data1-data2,printf("%d",res);break;
case '*':res=data1*data2,printf("%d",res);break;
}
return 0;
}

这是源代码,有关于计算器,编的很差,有这样的要求:作除法运算时,若能够整除,则输出为整数,否则输出结果小数点后应保留两位有效数字。
还有我定义shang的输出格式是7.2f可是输出时仍然很长

#include<stdio.h>
main()
{
int data1,data2,res;
char op;
scanf("%d %c %d",&data1,&op,&data2); //这吧op放中间比较好
if (op==47)
{
int yu;
yu=data1%data2;
double shang;
shang=(double)data1/data2;
if(yu!=0)
printf("%7.2lf",shang); //输入小数保留两位没有问题
else
{ //这要加大括号
res=data1/data2;
printf("%d",res);
}

}
else
switch(op)
{
case '+':res=data1+data2,printf("%d",res);break;
case '-':res=data1-data2,printf("%d",res);break;
case '*':res=data1*data2,printf("%d",res);break;
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答