帮一个 C语言小白 朋友撸代码,改进的空间还有很大,希望大神多多指教!
一、比较大小
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8
#include<stdio.h>
int main(){
int a,b,c,temp;
scanf("%d %d %d",&a,&b,&c);
if(a > b){
temp = a;
a = b;
b = temp;
}
if(a > c){
temp = a;
a = c;
c = temp;
}
if(b > c){
temp = b;
b = c;
c = temp;
}
printf("%d->%d->%d",a,b,c);
return 0;
}
二、计算分段函数
本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
输入格式: 输入在一行中给出实数x。
输出格式: 在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。
输入样例:
1:10
输出样例1:
f(10.00) = 3.16
输入样例2:
-0.5
输出样例2:
f(-0.50) = -2.75
#include<stdio.h>
#include<math.h>
int main(){
float x;
scanf("%f",&x);
if(x >= 0){
printf("f(%.2f) = %.2f",x,sqrt(x));
}else{
printf("f(%.2f) = %.2f",x,pow(x+1,2) + 2.0*x + 1.0/x);
}
return 0;
}
三、计算运费
运输公司对用户计算运费。路程(s)越远,每千米运费就越低。标准如下:
- s<250km ,没有折扣;250km≤s<500km, 2%的折扣;
- 500km≤s<1000km, 5%的折扣;1000km≤s<2000km,8%的折扣;
- 2000km≤s<3000km,10%的折扣;3000km≤s,15%的折扣。
设每千米每吨货物的基本运费为p,货物重为 w,距离为s,折扣为d,则总运费f的计算公式为: f=p×w×s×(1-d)
输入格式: 在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。
输出格式: 在一行输出计算出来的运费,精确到小数点后2位的值。
输入样例: 在这里给出一组输入。例如:
100 20 300
输出样例: 在这里给出相应的输出。例如:
freight=588000.00
#include<stdio.h>
int main(){
int s,p,w;
float freight;
scanf("%d %d %d",&p,&w,&s);
if(s < 250){
freight = p *1.0 * w * s;
}else if(s < 500){
freight = p * 1.0 * w * s * (1 - 0.02);
}else if(s < 1000){
freight = p * 1.0 * w * s * (1 - 0.05);
}else if(s < 2000){
freight = p * 1.0 * w * s * (1 - 0.08);
}else if(s < 3000){
freight = p * 1.0 * w * s * (1 - 0.1);
}else{
freight = p * 1.0 * w * s * (1 - 0.15);
}
printf("freight=%.2f",freight);
return 0;
}
四、A除以B
真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
输入格式: 输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。
输出格式: 在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。
输入样例1:
-1 2
输出样例1:
-1/2=-0.50
输入样例2:
1 -3
输出样例2:
1/(-3)=-0.33
输入样例3:
5 0
输出样例3:
5/0=Error
#include<stdio.h>
int main(){
int x,y;
scanf("%d %d",&x,&y);
if(y < 0){
printf("%d/(%d)=%.2f",x,y,x*1.0/y);
}else if(y == 0){
printf("%d/0=Error",x);
}else{
printf("%d/%d=%.2f",x,y,x*1.0/y);
}
return 0;
}
五、计算火车运行时间
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式: 输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式: 在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
输入样例:
1201 1530
输出样例:
03:29
#include<stdio.h>
int main(){
int start,end,h,s;
scanf("%d %d",&start,&end);
if(end % 100 >= start % 100){
h = end / 100 - start / 100;
s = end % 100 - start % 100;
}else{
h = end / 100 - start / 100 - 1;
s = 60 - (start % 100 - end % 100);
}
printf("%02d:%02d",h,s);
return 0;
}
六、 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式: 输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式: 在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.6 2
输出样例1:
10
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
#include<stdio.h>
int main(){
int time;
double s;
double price;
scanf("%lf %d",&s,&time);
if(s <= 3){
price = 10;
}else if(s <= 10){
price = 10 + 2.0 * (s - 3);
}else{
price = 24 + 3.0 * (s - 10);
}
price = (int)(price + 2.0 * (time / 5) + 0.5);//四舍五入,加0.5
printf("%.0f",price);
return 0;
}
七、后天
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入格式: 输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。
输出格式: 在一行中输出D天的后天是星期几。
输入样例:
3
输出样例:
5
#include<stdio.h>
int main(){
int D;
scanf("%d",&D);
switch(D){
case 1:
printf("3");
reak;
case 2:
printf("4");
break;
case 3:
printf("5");
break;
case 4:
printf("6");
break;
case 5:
printf("7");
break;
case 6:
printf("1");
break;
case 7:
printf("2");
break;
}
return 0;
}