计算邮资问题
题目是
我写的代码是
#include<stdio.h>
#include<math.h>
int main()
{
int n, fee;
char c;
scanf("%d %c", &n, &c);
if(c == 'y'){
if(n<=1000){
fee = 8 + 5;
}
else{
fee = 8 + ceil(1.0*(n-1000)/500)*4 + 5;
}
}
else if(c == 'n'){
if(n<=1000){
fee = 8;
}
else{
fee = 8 + ceil(1.0*(n-1000)/500);
}
}
printf("%d", fee);
return 0;
}
找到答案的代码是
#include<stdio.h>
#include<math.h>
int main()
{
int x,N;
char c;
scanf("%d %c",&x,&c);
if(c=='n')
{
if(x<=1000) N=8;
else N=8+ceil((x*1.000-1000)/500)*4;
}
else
{
if(x<=1000) N=13;
else N=13+ceil((x*1.000-1000)/500)*4;
}
printf("%d",N);
return 0;
}
我仔细比较,发现区别就是ceil函数里面的写的顺序不一样以及答案是if else 判断,我把 y 和 n 都进行了判断,程序判定我是部分正确。。哪里有问题