请各位帮我看看这用C语言写的为什么ceil函数取出来是负的,我输入1700 n的时候等于0。题目: 根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
输入:输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。输出:输出一行,包含一个整数,表示邮费。样例输入:1200 y ,样例输出:17
源代码:
#include
int main()
{
int a,j,m;double h;
h=ceil((a-1000)/500.0)*4;j=h+8;m=h+13;
char x;
scanf("%d %c",&a,&x);
if(a<=1000)
{
if(x=='y') printf("13");
else if(x=='n') printf("8");
}
else
{
if((a-1000)<=500)
{
if(x=='y') printf("17");
if(x=='n') printf("12");
}
else
{
if(x=='y') printf("%d",m);
if(x=='n') printf("%d",j);
}
}
return 0;
}
你得先scanf输入a和x的值,然后再h=ceil((a-1000)/500.0)*4计算h的值啊。a都没输入了,是个垃圾值,自然h也是垃圾值,后面j和m计算出来的都是垃圾值