70,023
社区成员




题目:根据快递重量,是否加急,计算快递费,单位克,1000克以内8元,每超500克加4元,加急费5元
#include<stdio.h>
int main(void){
int a,b,f; //a是重量,b是超重部分,c是加急,f是总费用
char c;
printf("输入重量,是否加急?");
scanf("%d %c",&a,&c);
b=(a-1000)/500;
if (c=='n'){
if(a<=1000) f=8;
else if(a%500==0) f=8+b*4;
else f=8+(b+1)*4;
}
else {
if(a%500==0) f=8+b*4+5;
else f=8+(b+1)*4+5;
}
printf("总费用为%d",f);
return 0;
}
是否有更简便的写法?
f = (a > 1000 ? 8 + (a - 501) / 500 * 4 : 8) + (c != 'N' && c != 'n') * 5;
同学,请参考:
#include <stdio.h>
int main() {
int a, b, f; //a是重量,b是超重部分,c是加急,f是总费用
char c;
printf("输入重量,是否加急?");
scanf("%d %c", &a, &c);
b = (a - 1000) / 500;
f = 8; // 基本费用,一定要收的
if (a > 1000 && a % 500 != 0) { // 整收
b++;
}
f += b * 4; // 超重收费
if (c == 'y') { // 加急费
f += 5;
}
printf("总费用为:%d", f);
return 0;
}