黑马程序员技术交流社区

标题: 求大神告知怎么理解这题 怎么做 [打印本页]

作者: 宋兴1228    时间: 2015-5-21 22:14
标题: 求大神告知怎么理解这题 怎么做
/*
某个自动加油站有 ‘a’,‘b’,‘c’三种汽油品种,单价分别为 6.92,7.37,7.64(元/公升),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量x,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。(请用多分支选择switch语句)。
*/
作者: kulala0115    时间: 2015-5-21 22:16
#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    //  x 千克数 m1价格 m2折扣
    float x, m1 = 0.0, m2 = 0.0, m;
    char y, z;//汽油种类,服务等级
    // 输入选择的千克,种类,服务
    printf("请输入汽油的千克数,种类,服务;并用逗号隔开:\n");
    scanf("%f,%c,%c", &x, &y, &z);
    //  选择汽油种类
    switch (y) {
        case 'a':
            m1 = 6.92;
            break;
        case 'b':
            m1 = 7.37;
            break;
        case 'c':
            m1 = 7.64;
            break;
    }
    switch (z) {
            //          自动加
        case 'f':
            m2 = 0;
            break;
            //          自己加
        case 'm':
            m2 = 0.05;
            break;
            //          协助加
        case 'e':
            m2 = 0.1;
            break;
    }
    //计算应付的金额   总金 = 实际 - 优惠
    m = (x * m1) - (x * m1 * m2);
    printf("汽油的种类是: %c\n", y);
    printf("服务等级是: %c\n", z);
    printf("应付的金额是: %f\n", m);
   
    return 0;
}

作者: 我是一个小菜鸟    时间: 2015-5-21 22:17
#include <stdio.h>

int main(){
    //定义变量
    int x = 0;
    float pay = 0.0;
    char y,z;
    //提示用户输入加油量x,汽油品种y,服务类型z
    printf("请输入加油量x,汽油品种y,服务类型z:\n");
    //接收用户输入的加油量x,汽油品种y,服务类型z
    scanf("%d,%c,%c",&x,&y,&z);
    //编写函数,计算出pay的值并且输出
    switch(z) {
        case 'f':
            switch (y) {
                case 'a':
                    pay = (float)(6.92*x);
                    break;
                case 'b':
                    pay = (float)(7.37*x);
                    break;
                case 'c':
                    pay = (float)(7.64*x);
                    break;
            }
            break;
        case 'm':
            switch (y) {
                case 'a':
                    pay = (float)(6.92*x*0.95);
                    break;
                case 'b':
                    pay = (float)(7.37*x*0.95);
                    break;
                case 'c':
                    pay = (float)(7.64*x*0.95);
                    break;
            }
            break;
        case 'e':
            switch (y) {
                case 'a':
                    pay = (float)(6.92*x*0.9);
                    break;
                case 'b':
                    pay = (float)(7.37*x*0.9);
                    break;
                case 'c':
                    pay = (float)(7.64*x*0.9);
                    break;
            }
            break;
        default:
            break;
    }
    printf("加油量为:%d\n汽油品种为:%c\n服务类型为:%c\n总价格为:%.2f\n",x,y,z,pay);
    return 0;
}

作者: Theshy    时间: 2015-5-22 19:48
基础班练习题。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2