当前位置:首页 » 编程语言 » c语言计算薪酬
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言计算薪酬

发布时间: 2022-10-30 15:36:36

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出问题了呀,进而去搜索它的正确用法。这才是真正的解决问题。

⑵ 用C语言编写计算工人工资怎么编写

用C语言编写计算工人工资怎么编写?

某工厂按工人的工时计算工人工资,规则如下:工资按每小时84元计发。若总工时>120小时,超过120小时的部分每小时加发15%;若总工时<60小时,则总工资扣发700元。编写程序,从键盘录入某工人的工时,程序能计算并输出该工人的工资。(画出程序流程图)

⑶ C语言计算工资的代码

源代码中,你的if语句里面两个表达式是用逗号分开的,这样并不能满足两个条件都满足的要求
现修改代码如下,

#include<stdio.h>
intmain()
{
inty,t;
doublem;
scanf("%d%d",&y,&t);
if(y<5&&t<=40)//使用&&表示要求两个条件都满足
printf("%.2f",m=t*30);
elseif(y<5&&t>40)
printf("%.2f",m=40*30+(t-40)*30*1.5);
elseif(y>=5&&t<=40)
printf("%.2f",m=t*50);
else
printf("%.2f",m=40*50+(t-40)*50*1.5);
}

⑷ c语言编程题 某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%

#include<stdio.h>

intmain()
{
inthours;
floatwage;
floatsalary;
scanf("%d%f",&hours,&wage);
salary=hours*wage*(1-0.1);
printf("thesalaryshouldbe$f ",salary);
}

⑸ 用C语言编写计算工人工资

#include&amp;lt;stdio.h&amp;gt;
void main()
{
int hour;
int salary;
scanf("%d",hour);
switch(hour/60)
{
case 0:
{
salary=hour*84-700;
break;
}
case 1:
{
salary=hour*84;
break;
}
case 2:
{
salary=120*84+(hour-120)*(84*1.5);
break;
}
default:
printf("工时错误!");
}
printf("工资为%d",salary);
}

抱歉,好久没弄C了,上面随便写没编译,刚才又弄了一下

#include<stdio.h>
void main()
{
int hour=0;
double salary;
scanf("%d",&hour);
while(hour<0)
{
printf("工时错误,重新输入!");
scanf("%d",&hour);
}
switch(hour/60)
{
case 0:
{
salary=hour*84-700;
break;
}
case 1:
{
salary=hour*84;
break;
}
case 2:
{
salary=120*84+(hour-120)*(84*1.15);
break;
}
}
printf("工资为%f",salary);
}

⑹ C语言编程,计算工资并计算税后工资

#include<stdio.h>
#defineX400//美元
#defineY15//40小时后
#defineA300*0.15//前300
#defineB(450-300)*0.20+A
#defineC0.25
intmain(void)
{
inta=0;
intb=0;//含税工资
while((scanf_s("%d",&a))==1)//这里不要加换行。
{
if(a<=40)
{
b=a*10;//这里应该是a*10
printf("%d ",b);
}
elseif(a>40)
{
printf("%d ",(a-40)*Y+X);//工资
b=(a-40)*Y+X;
}
break;
}
printf("%d ",b);
if(b<=300)
printf("%d ",b*(1-0.15));
elseif(b<=450)
printf("%d ",b-(b-300)*0.2-300*0.15);
else
printf("%d ",b-(b-450)*C-(B));
return0;
//getchar();
}

⑺ c语言编写程序,输入工作时间,计算某小时工薪酬

#include<stdio.h>

intmain(void)
{
inta,b;
printf("工作了几个小时?");
scanf("%d",&a);
if(a<=4)
printf("%d元",25*a);
else
b=a-4;
a=a-b;
printf("%d元",30*b+25*a);
return0;
}

⑻ 用C语言编写一个计算薪水的程序

/*工资计算程序*/
#include <stdio.h>

main()
{
float originWage; /*应发工资*/
float realWage; /*实发工资*/
float tax; /*所缴税款*/
int i,hour,amount,money;

printf("请选择工资种类:\n1.计时工资\n2.计件工资\n3.固定月工资\n");
scanf("%d",&i);
switch(i)
{
case 1:{
printf("请输入工作时间(单位:小时)\n");
scanf("%d",&hour);
printf("请输入单位时间的薪水(单位:元)\n");
scanf("%f",&money);
originWage=money*hour;
}
break;
case 2:{
printf("请输入生产产品数量(单位:件)\n");
scanf("%d",&amount);
printf("请输入生产一件产品的薪水(单位:元)\n");
scanf("%f",&money);
originWage=money*amount;
}
break;
case 3: printf("请输入你的固定工资\n");
scanf("%f",&originWage);
break;
default:printf("输入错误!\n");
return 0;
}

if(originWage<0)
{
printf("数据错误!\n");
return 0;
}
if(originWage<2000)
tax=0;
else if(originWage>2000&&originWage<=2500)
tax=(originWage-2000)*0.05;
else if(originWage>2500&&originWage<=4000)
tax=(originWage-2500)*0.1+500*0.05;
else
tax=(originWage-4000)*0.15+1500*0.1+500*0.05;
printf("应发工资: %f\n",originWage);
printf("所缴税款: %f\n",tax);
printf("实发工资: %f\n",originWage-tax);
return 0;
}

⑼ 求各位大神帮帮忙 C语言怎样使用switch语句来写工资提成

#include<stdio.h>
intmain()
{
floata,b;
printf("请输入销售额:");
scanf("%f",&a);
switch((int)(a/1000))//提取a的千位数字
{
case0:
b=0;
break;
case1:
b=2;
break;
case2:
case3:
case4:
b=5;
break;
default:
if(a==5000.0)//边界情况:销售额等于5000元
b=5;
else
b=10;
break;
}
floattotal=500+500*(b/100);
printf("总工资为:%.2f ",total);
return0;
}

示范对话1:

⑽ c语言:编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。

#include <stdio.h>
void main()
{
double a, rate;
int c,tax,profit;
printf("输入奖金数:");
scanf("%lf",&a);
if(a>=5000)c=10;
else c=a/500;
switch(c) {
case 0: rate=0; break;
case 1: rate=0.05; break;
case 2:
case 3:
case 4: rate=0.08; break;
case 5:
case 6:
case 7:
case 8:
case 9: rate=0.10; break;
case 10: rate=0.15; break;
}
printf("%d",c);
tax=(a*rate);
profit=(int)(a-tax);
printf("税率为%lf,应缴税款为%d,实得奖金数为%d\n",rate,tax,profit);
}