⑴ 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&lt;stdio.h&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);
}