C语言编程练习——选择结构(二)

帮一个 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;
}
发布了14 篇原创文章 · 获赞 34 · 访问量 2140

猜你喜欢

转载自blog.csdn.net/qq_46127363/article/details/105621613
今日推荐