• c中const定义的问题


    /*


    这题有个疑问:
    const double BASE1=BREAK1*RATE1; //第二个分界点前总共要缴的税收
    const double BASE2=BASE1+(BREAK2-BREAK1)*RATE2; //第三个分界点前总共要缴的税收
    为什么只有移到子函数里面有用,放开头提示错误!提示:initializer is not a constant

    */
    #include<stdio.h>

    const double HOURLYPAID=10; //每个小时的薪水
    const double TIMEBREAK=40; //工时的分界点
    const double COEFFICIENT=1.5; //工时的系数
    const double RATE1=0.15; //税率
    const double RATE2=0.2; //税率
    const double RATE3=0.25; //税率
    const double BREAK1=300; //税收分界点
    const double BREAK2=600; //税收分界点

    //const double BASE1=BREAK1*RATE1; //第二个分界点前总共要缴的税收
    //const double BASE2=BASE1+(BREAK2-BREAK1)*RATE2; //第三个分界点前总共要缴的税收


    void choose_1();
    void stars();
    int choose_screen();

    int main(void)
    {
    int i = 0;

    while(i!=5)
    {

    i = choose_screen();
    switch(i)
    {
    case 1:
    case 2:
    case 3:
    case 4:choose_1();continue;
    case 5:printf("谢谢使用 ");break;
    default:
    printf("输入错误,请输入1~5的整数");

    }


    }


    return 1;
    }


    int choose_screen()
    {
    int i;

    stars();
    printf("请选择工资等级,退出请按5 ") ;

    printf("1)$8.75/hr 2)$9.33/hr ");
    printf("3)$10.00/hr 4)$11.20/hr ");
    printf("5)quit ");

    stars();

    scanf("%d",&i);

    return i;

    }


    void stars()
    {
    printf("************************************************* ");

    }


    void choose_1()
    {
    const double BASE1=BREAK1*RATE1; //第二个分界点前总共要缴的税收
    const double BASE2=BASE1+(BREAK2-BREAK1)*RATE2; //第三个分界点前总共要缴的税收

    double time; //工时
    double salary; //总收入
    double tax; //税收
    double profit; //净利润

    printf("请输入一周的工作小时数: ");
    scanf("%lf", &time);

    if(time>TIMEBREAK) //如果工作时间超过40个小时
    time=(time-TIMEBREAK)*COEFFICIENT+TIMEBREAK;

    salary=HOURLYPAID*time;

    if(salary<=BREAK1)
    tax=salary*RATE1;
    else if(salary<=BREAK2)
    tax=BASE1+(salary-BREAK1)*RATE2;
    else
    tax=BASE2+(salary-BREAK2)*RATE3;

    profit=salary-tax;

    printf("工资总额是: %lf ", salary);
    printf("税金是: %lf ", tax);
    printf("净工资是: %lf ", profit);

    }

     //******************************************************************

     这三种情况是可以的,const static xxxxx;不行

    //......................................................

    //.....................................................

    //编辑器用的是http://www.pc6.com/softview/SoftView_51072.html下载的

     因为编辑器不支持c99标准。--之后知道的

  • 相关阅读:
    c# Task多线程并行任务中等待所有线程都执行完成
    C#多线程之所有线程执行完成后
    正则表达式
    js 实时监听input中值变化
    js中prop和attr区别
    获取自定义属性
    checkBox
    js中判断数组中是否包含某元素的方法
    leetcode — path-sum-ii
    leetcode — path-sum
  • 原文地址:https://www.cnblogs.com/zxj-262410/p/6571691.html
Copyright © 2020-2023  润新知