main()
{
char c;
double a,b;
scanf("%lf%c%lf",&a,&c,&b);
if(c=='+'){
printf("%.2lf\n",a+b);
}
if(c=='-'){
printf("%.2lf\n",a-b);
}
if(c=='*'){
printf("%.2lf\n",a*b);
}
if(c=='/'){
if(b==0)
printf("error\n");
else
printf("%.2lf\n",a/b);
}
}
判断输入符号:+-*/;输出对应数;
重点是:定义类型时定义double
类型;输入%lf;输出想保存两位小数点的话就是%.2f;
那么double和float类型定义的区别是什么呢?
百度:
使用%f对实数只输出小数点后6位的数字(不是有效数字,强制只输出小数点后6位),所以输出双精度型必须明确指定输出小数点后位数,要求使用%.nf格式n为小数点后数位! %lf格式定义的是scanf()函数的格式输入,不是输出。
float是单精度实型,用4个字节存储
double是双精度实型,用8个字节存储。在进行程序运算时,float型数据一律转换为double型数据,为自动类型转换。所以结果一样。但float,double两种类型数据精度不同,float型有效数字位数为6~7位,double为15~16位,二者有区别;
一般情况下都用double定义;输出时根据需要%.nf;输入时指定是%lf(再次强调是字母l;不是数字1)