1. c语言 “企业发放的奖金根据利润提成” 的问题
你scanf("&d",&i); 改为scanf("%f",&i); 就行,最后面的输出用%g好一些,可以出去多余的0
#include<stdio.h>
int main()
{
float i,J,a,b,c,d,e;
printf("请输入利润:I=");
scanf("%f",&i);
a=10000;
b=7500;
c=10000;
d=6000;
e=6000;
if(i<=100000) J=i*0.1;
else if(i<=200000) J=a+(i-100000)*0.075;
else if(i<=400000) J=a+b+(i-200000)*0.05;
else if(i<=600000) J=a+b+c+(i-400000)*0.03;
else if(i<=1000000) J=a+b+c+d+(i-600000)*0.015;
else
J=a+b+c+d+e+(i-1000000)*0.01;
printf("奖金总数:%g\n",J);
return 0;
}
2. C语言编程,利润提成
(1)if语句
#include "stdio.h"
void main()
{
int i,j;
float a1,a2,a4,a6,a10,k;
a1=100000*0.1;
a2=a1+100000*0.075;
a4=a2+200000*0.05;
a6=a4+200000*0.03;
a10=a6+400000*0.015;
printf("请输入利润:");
scanf("%d",&i);
if(i<=100000)
k=i*0.1;
else if(i<=200000)
k=a1+(i-100000)*0.075;
else if(i<=400000)
k=a2+(i-200000)*0.05;
else if(i<=600000)
k=a4+(i-400000)*0.03;
else if(i<=1000000)
k=a6+(i-600000)*0.015;
else
k=a10+(i-1000000)*0.01;
printf("奖金是:%.2f",k);
}
(2)switch语句
#include "stdio.h"
void main()
{
int i,j;
float a1,a2,a4,a6,a10,k;
a1=100000*0.1;
a2=a1+100000*0.075;
a4=a2+200000*0.05;
a6=a4+200000*0.03;
a10=a6+400000*0.015;
printf("请输入利润:");
scanf("%d",&i);
j=i/100000;
switch(j){
case 0:
k=i*0.1;
break;
case 1:
k=a1+(i-100000)*0.75;
break;
case 2:
case 3:
k=a2+(i-200000)*0.05;
break;
case 4:
case 5:
k=a4+(i-400000)*0.03;
break;
case 6:
case 7:
case 8:
case 9:
k=a6+(i-600000)*0.015;
break;
default:
k=a10+(i-1000000)*0.01;
}
printf("奖金是:%.2f",k);
}
3. c语言 企业提成问题,高手指教啊~!
1.首先 你的‘大于***并且小于等于***’类似于这类的写错了,在C语言中是不能像数学中那样表示,而应该是‘X>*** and X<=***’
2.其次,你的代码适度有问题,计算公式不正确,如:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元部分,可提成7.5%;你的公式是这样的--if(100000<i<=200000) m=10000+(i-100000)*7.5%;这段代码是不正确的,应该是if(100000<i and i<=200000) m=100000*0.1+(i-100000)*0.075;(不知道你那1万是从哪来的,正确的应该是10万乘以10%)
3.在 if(200000<i<=400000) m=17500+(i-200000)*5%;计算公式中,少加上了‘10000’这个部分的利润,应该为 m=17500*7.5%+(i-200000)*5%;(也不知道你那17500哪来的,但是正确的应该是200000*0.075+(i-200000)*0.05)
你就对照着我给你的三个错误一步步的类推
double型应为‘%lf’
建议你用你自己写的第二种方法加以修正。
4. C语言怎么编写程序,底薪加上总销售额的提成等于总收入求会的好心人教下我
#include<stdio.h>
int main(void){
float a,b;//a为输入销售额,b为销售人员收入
printf("输入销售额");
scanf("%f",&a);
b=(200+a*0.08);
printf("销售员该星期收入为%f",b);
return(0);
}
5. 跪求c语言编程,工资等于底薪加提成。求个人工资
unsigned int basic, addon;
printf("input the basic and addon :");
scanf("%d%d", &basic, &addon);
printf("the result is %d\n", basic+addon);
没有提供底薪和提成的算法,只能写这些了
6. C语言求利润提成当输入600000得到33499为什么
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
这一句定义的类型好像有问题吧~
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
这几句,百分数转换成小数时出错
7. C语言,模拟工资计算器,计算一个销售人员的月工资的数量(月工资=基本工资+提成,提成=商品数*1.5)。
楼主的代码存在两个明显问题:
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()中 、空格和制表符都是是空白符。空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。只有输入一个非空白符的时候才能终止scanf的输入。另外在上一点提出的参数类型也需要格外注意。
需要补充知识点:scanf()函数的使用方法。请查阅相关文档。
http://ke..com/link?url=_
再啰嗦几句:puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。虽然楼主的使用方式也正确,但是最好也查阅一下更标准的使用方法。
http://ke..com/link?url=MVSb8tWqQPMLWzKve4IpvgamU_2P--Rf63HG3AeUc3Cb7XRp53K35Bs9IQ_8IA3Y2lqRaZ0zCTenPgzg8RLSYK
下面贴出我修改后的代码:
#include<stdio.h>
intmain()
{
doubleiSalary,iBasic,iCommission,iSales;
printf("Pleaseenterthebasicpayment:");
scanf("%lf",&iBasic);
printf("Pleaseenterthesales:");
scanf("%lf",&iSales);
iCommission=(iSales*1.5);
printf("提成工资为:%lf ",iCommission);
iSalary=(iBasic+iCommission);
printf("月工资数量:");
printf("%lf",iSalary);
return0;
}
请楼主注意其中变量类型的变化以及输入输出中%后面的变化。
小提示:编程过程中细节真的很重要啊,还有,以后遇到问题,试着分解成一个个小问题分析,再查找相关的解决办法,学会善用搜索引擎。比如楼主在输入时遇到了问题,就要想是不是scanf出问题了呀,进而去搜索它的正确用法。这才是真正的解决问题。
8. C语言编程题 利润提成
#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<=200000&&i>100000)
z=2;
else if(i<=400000&&i>200000)
z=4;
else if(i<=600000&&i>400000)
z=6;
else if(i<=1000000&i>600000)
z=10;
else if(i>1000000)
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;
}
调好了 试试
9. 企业发放的奖金根据利润提成的编程问题(c语言)
有个很明显的错误。
比如利润是45万。
那么应该是由以下几个部分组成:
1.100000
这部分提成10%,也就是1万
2.100000-200000之间的10万,这部分提成7.5%,也就是7500
3.200000-400000之间的20万,这部分提成5%,也就是1万
4.高于40万的5万,提成3%,也就是1500
加起来,是3万。
10. C语言程序设计:奖金利润提成
if分支或switch都可以实现,这个用switch比较适合一些。