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);
}
//******************************************************************
//......................................................
//.....................................................
//编辑器用的是http://www.pc6.com/softview/SoftView_51072.html下载的
因为编辑器不支持c99标准。--之后知道的
c中const定义的问题的更多相关文章
- php中const定义常量
const 常量 1.在定义时必须被初始值,2.前面不加任何修饰符3.变量名字母一般都大写4.常量可以被子类继承5.一个常量是属于一个类的,而不是某个对象的 作用:当某些值是固定不变的,就用const ...
- js 中const 定义的值是否能更改
const定义的基本类型不能改变,但是定义的对象是可以通过修改对象属性等方法来改变的. 1. const aa=trueaa=falseconsole.log(aa)VM1089:2 Uncaught ...
- C中const 定义常量的使用
先看如下代码 #include <stdio.h> #include <string.h> #define ARRSIZE(a) (sizeof(a)/sizeof(a[0]) ...
- PHP 中 define() 和 const 定义常量时的区别
自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数: 1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...
- C/C++中define定义的常量与const常量
常量是在程序中不能更改的量,在C/C++中有两种方式定义常量,一种是利用define宏定义的方式,一种是C++中新提出来的const型常变量,下面主要讨论它们之间的相关问题: define定义的常量: ...
- C/C++中const关键字的用法及其与宏定义的比较
1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性. 即它所修饰的变量不能被修改. 2.修饰局部变量 ; ; 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用c ...
- ES6 js中const,var,let区别 今天第一次遇到const定义的变量
今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 ...
- PHP中const和define()定义常量的细节区别
转自:http://www.365mini.com/page/difference-of-define-and-const.htm 众所周知,在PHP中(php 4及以后),我们可以使用函数defin ...
- PHP中define()和const定义常量的区别
在PHP中可以通过define()和const两种方式定义常量可是在开发中我们应该什么时候用define()定义常量,什么时候用const定义常量? 这两种方式定义常量的主要区别是什么? 从5.3版本 ...
随机推荐
- linux 下 tomcat 安装
下载 根据已安装的jdk版本选择合适的版本,否则不兼容 https://tomcat.apache.org/whichversion.html 选择合适的压缩包 源码 二进制:已针对固定的操作系统和机 ...
- Android知识点剖析系列:深入了解layout_weight属性
摘录自:http://www.cnblogs.com/net168/p/4227144.html 前言 Android中layout_weight这个属性对于经常捣鼓UI的我们来说,肯定不会陌生.但是 ...
- myeclipse10不用打开myeclipse configuration center安装插件的方法
我使用myeclipse10,网上找了一大堆的插件安装方法,全部都是要通过help->myeclipse configuration center进行安装 不用打开myeclipse conf ...
- 数据结构 链式哈希表(Hash Table)的接口定义与实现分析(完整代码)
链式哈希表的接口定义 关于哈希表与链式哈希表的描述可以参阅:http://www.cnblogs.com/idreamo/p/7990860.html 链式哈希表的操作与属性有:初始化.销毁.插入元素 ...
- ROM、SDRAM、RAM、DRAM、SRAM、FLASH区别
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- js_3_for_if_try
在js中有哪些特殊变量? null 指向一个空地址,一个特殊的地址 var u 定义了一个特殊变量u,类型未定义,boolean(u)=false js中的for循环是什么样子? 对列表: for(v ...
- python_爬校花图片
如何用python爬取校花图片并保存到本地来? 1. 获取什么数据? 校花名字 name 校花所在学校 school 校花图片的url img_ulr 2.如何获取? 打开网页http://ww ...
- C/C++基础知识总结
[006] HIWORD宏取高16位. [005] 使用strcmp需判断参数是否为NULL [004] main函数的第三个参数envp 有的编译器支持三个参数的main函数,但不推荐这么写. [0 ...
- linux根据端口号查询来源程序
1.根据端口号查询进程 netstat -tunlp|grep port 2.根据进程查询来源程序 ps aux | grep pid 上图看出所属进程为2281 上图看出占用8083端口的程序为n ...
- 自己写的日志框架--linkinLog4j--实现基本的框架功能
OK,上面一步我们已经知道了日志框架的必要性,然后我们也对比了直接不用日志框架来记录日志的种种弊端.现在我们开始就来一步一步的实现自己的日志框架. 大体的思路如下: 1,实现多种日志级别,通过设值不同 ...