C语言的一道题,每组数据输出一个最多保留两位小数的数,详细见下面。

Description每年的ACM新生赛都要买好多好多的气球,小Q今年又被派去买气球了。小Q去买气球的时候,老板只告诉了小Q一共要付多少钱,而小Q只知道需要买多少个气球。... Description

每年的ACM新生赛都要买好多好多的气球,小Q今年又被派去买气球了。小Q去买气球的时候,老板只告诉了小Q一共要付多少钱,而小Q只知道需要买多少个气球。请你告诉他每个气球要多少钱.

Input

输入数据有多组,每组占一行。
一个最多保留两位小数的浮点数m和一个整数n。分别代表要付的总钱数和气球数
0<m<10000,0<n<100

Output

每组数据输出一个最多保留两位小数的数。代表每个气球的价格。小数部分不输出末尾的0。若小数部分全为0则输出整数。

Sample Input
1 3
Sample Output
0.33
HINT

Source

下面是我的代码,请问它哪里错了吗?

#include <stdio.h>

int main()
{
int n, a;
double sum, price, k;
while(scanf("%lf %d", &sum, &n) != EOF)
{
price = sum / n;
k = price - (int)price;
if (k == 0||int(k * 100) == 0)
printf("%.0lf\n",price);
else if(int(k * 100) % 10 != 0)
printf("%.2lf\n",price);
else if(int(k * 100) % 10 == 0&&int(k * 100) != 0)
printf("%.1lf\n",price);
}
return 0;
}
展开
 我来答
讉莣熔燃氺
2014-12-04 · TA获得超过450个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:100万
展开全部
错了,n也得是double型的。不然的话price = sum / n;类型不对,在强制转换之前,是整型,不会出现小数。
追问
改完还是错,会不会是有其他情况还没考虑?
追答
#include 

int main()
{
double sum, price, k,n;
while(scanf("%lf %lf", &sum, &n) != EOF)
{
price = sum / n;
printf("%.2lf\n",price);
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式