十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联服务项目包括富宁网站建设、富宁网站制作、富宁网页制作以及富宁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,富宁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到富宁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
int main()
{
int z,i;
float sum=0;
printf("input money:");
scanf("%d",i);
if(i=100000)
z=1;
else if(i=200000i100000)
z=2;
else if(i=400000i200000)
z=4;
else if(i=600000i400000)
z=6;
else if(i=1000000i600000)
z=10;
else if(i1000000)
z=11;
switch(z)
{
case 11:sum+=(i-1000000)*0.01;i=1000000;
case 10:sum+=(i-600000)*0.015;i=600000;
case 6:sum+=(i-400000)*0.03;i=400000;
case 4:sum+=(i-200000)*0.05;i=200000;
case 2:sum+=(i-100000)*0.075;i=100000;
case 1:sum+=i*0.1;break;
}
printf("Bonus=%lf",sum);
return 0;
}
调好了 试试
1.首先 你的‘大于***并且小于等于***’类似于这类的写错了,在C语言中是不能像数学中那样表示,而应该是‘X*** and X=***’
2.其次,你的代码适度有问题,计算公式不正确,如:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元部分,可提成7.5%;你的公式是这样的--if(100000i=200000) m=10000+(i-100000)*7.5%;这段代码是不正确的,应该是if(100000i and i=200000) m=100000*0.1+(i-100000)*0.075;(不知道你那1万是从哪来的,正确的应该是10万乘以10%)
3.在 if(200000i=400000) m=17500+(i-200000)*5%;计算公式中,少加上了‘10000’这个部分的利润,应该为 m=17500*7.5%+(i-200000)*5%;(也不知道你那17500哪来的,但是正确的应该是200000*0.075+(i-200000)*0.05)
你就对照着我给你的三个错误一步步的类推
double型应为‘%lf’
建议你用你自己写的第二种方法加以修正。
#include stdio.h
int main()
{
float a,b;
printf("请输入销售额:");
scanf("%f",a);
switch((int) (a / 1000)) // 提取a的千位数字
{
case 0:
b = 0;
break;
case 1:
b = 2;
break;
case 2:
case 3:
case 4:
b = 5;
break;
default:
if(a == 5000.0) // 边界情况:销售额等于5000元
b = 5;
else
b = 10;
break;
}
float total = 500 + 500 * (b / 100);
printf("总工资为:%.2f\n",total);
return 0;
}
示范对话1:
示范对话2:
示范对话3:
示范对话4:
这道c语言的解是:
#include #include int main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",i); bonus1=*0.1;bonus2=bonus1+*0.75; bonus4=bonus2+*0.5; bonus6=bonus4+*0.3; bonus10=bonus6+*0.15; if(iC语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSIC,作为C语言最初的标准。
拓展资料:
1.构成c语言的基本单位是什么:
构成c语言程序的基本单位是函数,一个函数由两部分组成,语言程序里面的2语言是特别难的一部分。因为c语言要了解函数,如果函数没有太多的了解,对于语言程序也是很难掌握的;
函数又包括了函数名、函数类型、函数属性、函数参数名和形式参数类型等等,除了要记住这些名词解释以外,还要记住函数的公式。在计算机运行当中,函数是一个重要的组成部分,有些学校还会专门开课讲解函数的相关理论知识。
2.c语言的作用:
c语言可以用来驱动程序、写系统服务、开发应用软件、生成声音信号、处理自然语言、设计大型游戏、开发网页等等;
单片机,由于C语言在位操作上的优越性,在单片机领域,C语言也一直独领风骚,虽然现在出现了一些用其他编程语言操作单片机的方法,但也都是用C语言封装过的,可以说核心还是C语言。操作系统,C语言最著名的应用领域就是操作系统了,目前所有的操作系统内核都是C语言写的,最著名的就是Unix和Linux了。
楼主的代码存在两个明显问题:
1、数值类型掌握不好
计算工资时很可能出现小数,而楼主声明变量时完全采用了int型,先不说是否逻辑正确。int型的变量直接与后面代码冲突。
有两个问题:
1.1:
scanf()中楼主在括号内写的是%ld,%ld等待的输入类型是long int,而楼主声明的是
int。
1.2:
iCommission=(iSales*1.5);
iSales为整形,1.5为浮点型,iSales*1.5的结果会隐式转换为浮点型,而iCommission为
整型int。在赋值时会产生错误。
需要补充知识点:参数类型的定义和转换。请查阅任何一本C语言教材。
2、scanf()函数掌握不好
这也是楼主最关心的问题,scanf()中\n、空格和制表符都是是空白符。空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。只有输入一个非空白符的时候才能终止scanf的输入。另外在上一点提出的参数类型也需要格外注意。
需要补充知识点:scanf()函数的使用方法。请查阅相关文档。
再啰嗦几句:puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。虽然楼主的使用方式也正确,但是最好也查阅一下更标准的使用方法。
下面贴出我修改后的代码:
#include stdio.h
int main()
{
double iSalary,iBasic,iCommission,iSales;
printf("Please enter the basic payment:");
scanf("%lf",iBasic);
printf("Please enter the sales:");
scanf("%lf",iSales);
iCommission=(iSales*1.5);
printf("提成工资为:%lf\n",iCommission);
iSalary=(iBasic+iCommission);
printf("月工资数量:");
printf("%lf",iSalary);
return 0;
}
请楼主注意其中变量类型的变化以及输入输出中%后面的变化。
小提示:编程过程中细节真的很重要啊,还有,以后遇到问题,试着分解成一个个小问题分析,再查找相关的解决办法,学会善用搜索引擎。比如楼主在输入时遇到了问题,就要想是不是scanf出问题了呀,进而去搜索它的正确用法。这才是真正的解决问题。