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("谢谢使用\n");break;
default:
printf("输入错误,请输入1~5的整数");

}


}


return 1;
}


int choose_screen()
{
int i;

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

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

stars();

scanf("%d",&i);

return i;

}

 

 


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

}


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\n", salary);
printf("税金是: %lf\n", tax);
printf("净工资是: %lf\n", profit);

}

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

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

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

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

 

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

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

posted @ 2017-03-18 10:04  Zhao_Xu_Jie  阅读(139)  评论(0编辑  收藏  举报