这题坑人,弄了很久,原来是%g输出!!!!!
%g:使用一般浮点数或者科学计数法中长度较短的格式来输出
题目:
促销计算
1000(ms)
65535(kb)
2976 / 9688
Tags: 卓越班选拔
某百货公司为了促销,采用购物打折的优惠方法,每位顾客一次购物:在1000元以上者,按9.5折优惠;在2000以上者,按9折优惠;在3000以上者,按8.5折优惠;在5000以上者,按8折优惠;编写程序,购物款数,计算并输出优惠价。
输入
输出
样例输入
850
1230
5000
3560
样例输出
discount=1,pay=850
discount=0.95,pay=1168.5
discount=0.8,pay=4000
discount=0.85,pay=3026
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
double n;
while (scanf("%lf", &n) != EOF)
{
if (n >= 0 && n < 1000)
{
if ((n - (int)n) > 0.0)
{
printf("discount=1,pay=%g\n", n);
}
else
printf("discount=1,pay=%g\n", n);
}
else if (n >= 1000 && n < 2000)
{
n = n * 0.95;
printf("discount=0.95,pay=%g\n", n);
}
else if (n >= 2000 && n < 3000)
{
n *= 0.9;
printf("discount=0.9,pay=%g\n", n);
}
else if (n >= 3000 && n < 5000)
{
n = n * 0.85;
printf("discount=0.85,pay=%g\n", n);
}
else if (n >= 5000)
{
n = n * 0.8;
printf("discount=0.8,pay=%g\n", n);
}
}
system("pause");
return 0;
}