① 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語言計算工資的代碼
源代碼中,你的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語言 計算程序員的收入
#include <stdio.h>
int main()
{
int hour;
int money;
scanf("%d",&hour);
if(hour < 160)
{
money = hour * 10;
}
else
{
money = 10 * 160 + (hour - 160) * 30;
}
printf("%d ",money);
return 0;
}
④ C語言求 算薪水的例子.
月有效工作日天數 工作年限 應該是int型,如果是精確到分的話就用浮點型float就行了,不用雙精度浮點,類型也不用強制轉換,因為int型計算出的結果賦給浮點型,結果就是浮點型。
float a;
int b;
a=b;
a中的數也就變成浮點型了,因為從低精度到高精度的轉換大部分編程語言都是允許的。
比如你這個。。
float salary,base = 2132.34,benefit = 10200.22,insur = 500;
int fate = 23,years = 30;
salary = (base+10*fate+benefit*years/100)*0.9-insur;
printf("\n%.2f",salary);
結果顯示是:4380.17。
明白了嗎?
⑤ c語言程序設計 職工工資
你要的是命令行還是圖形界面?如果是命令行可以考慮下如果是圖形界面的話200分少了點,看看吧.--------------------------------------------既然不是圖形界面,代碼就簡單.不過也有近300行.可能有些地方不怎麼簡潔..你用的時候,把注釋「deletenbsp;thisnbsp;line「那行所在的代碼刪除或修改就OK了.如果看不懂請給我留言,我發一份帶詳細注釋的代碼給你.--------------------------------------------/*Microsoftnbsp;Visualnbsp;C++nbsp;.NET編譯通過bynbsp;做他@07.12.29*/#includenbsp;「stdafx.h「#includenbsp;「iostream「#includenbsp;「string「#includenbsp;「list「#includenbsp;「cassert「usingnbsp;namespacenbsp;std;/*編號、姓名、部門、應付工資、保險、稅金、實付工資。其中實付工資由公式計算得到:實付工資=應付工資nbsp;-nbsp;保險-nbsp;稅金nbsp;*/structnbsp;employee{nbsp;stringnbsp;m_num;//編號nbsp;stringnbsp;m_name;//姓名nbsp;stringnbsp;m_dep;//部門nbsp;doublenbsp;m_salary;//應付工資nbsp;doublenbsp;m_insurance;//保險nbsp;doublenbsp;m_tax;//稅金};/*(1)錄入:輸入職工數據,其中「實付工資」通過計算得到;nbsp;(2)刪除:刪除指定的職工信息(輸入姓名,若找到則刪除該信息)nbsp;(3)nbsp;修改:允許對已經錄入的數據重新進行編輯、修改;nbsp;(4)nbsp;顯示:顯示全體職工數據;nbsp;(5)查詢:nbsp;a.nbsp;輸入職工姓名,顯示該職工的全部數據;nbsp;b.nbsp;輸入某部門值,顯示該部門職工的數據、工資總額、平均工資。nbsp;(6)nbsp;退出程序。*/listamp;lt;employeeamp;gt;nbsp;emps;intnbsp;_tmain(intnbsp;argc,nbsp;_TCHAR*nbsp;argv[]){nbsp;voidnbsp;print(constnbsp;employeenbsp;amp;e);nbsp;voidnbsp;input();nbsp;voidnbsp;del();nbsp;voidnbsp;mod();nbsp;voidnbsp;show_all();nbsp;voidnbsp;show_name();nbsp;voidnbsp;show_dep();nbsp;coutamp;lt;amp;lt;「簡易職工薪水管理程序nbsp;bynbsp;做他<br/>「;//nbsp;deletenbsp;thisnbsp;linenbsp;coutamp;lt;amp;lt;「版權沒有nbsp;請隨意復制或修改任何代碼<br/>「;//deletenbsp;thisnbsp;linenbsp;coutamp;lt;amp;lt;「請選擇操作:1.錄入nbsp;2.刪除nbsp;3.修改nbsp;4.查詢nbsp;5.顯示所有員工nbsp;6.退出nbsp;:「;nbsp;intnbsp;choose=0;nbsp;cinamp;gt;amp;gt;choose;nbsp;assert(!cin.fail());nbsp;whilenbsp;(choose!=6)nbsp;{nbsp;nbsp;ifnbsp;(choose==1)nbsp;input();nbsp;nbsp;ifnbsp;(choose==2)nbsp;del();nbsp;nbsp;ifnbsp;(choose==3)nbsp;mod();nbsp;nbsp;ifnbsp;(choose==4)nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp;intnbsp;choice=0;nbsp;nbsp;nbsp;coutamp;lt;amp;lt;「請選擇操作nbsp;1.按姓名查詢nbsp;2.按部門查詢nbsp;3.退出:「;nbsp;nbsp;nbsp;cinamp;gt;amp;gt;choice;nbsp;nbsp;nbsp;ifnbsp;(choice==1)nbsp;show_name();nbsp;nbsp;nbsp;ifnbsp;(choice==2)nbsp;show_dep();nbsp;nbsp;nbsp;ifnbsp;(choice==3)nbsp;nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp;nbsp;coutamp;lt;amp;lt;「請選擇操作:1.錄入nbsp;2.刪除nbsp;3.修改nbsp;4.查詢nbsp;5.顯示所有員工nbsp;6.退出nbsp;:「;nbsp;nbsp;nbsp;nbsp;cinamp;gt;amp;gt;choose;nbsp;nbsp;nbsp;nbsp;assert(!cin.fail());nbsp;nbsp;nbsp;nbsp;continue;nbsp;nbsp;nbsp;}nbsp;nbsp;}nbsp;nbsp;ifnbsp;(choose==5)nbsp;show_all();nbsp;nbsp;coutamp;lt;amp;lt;「請選擇操作:1.錄入nbsp;2.刪除nbsp;3.修改nbsp;4.查詢nbsp;5.顯示所有員工nbsp;6.退出nbsp;:「;nbsp;nbsp;cinamp;gt;amp;gt;choose;nbsp;nbsp;assert(!cin.fail());nbsp;}nbsp;re
希望對你能有所幫助。
⑥ c語言,模擬工資計算器,計算一個銷售人員的月工資的數量
#include<stdio.h>
void main()
{
double salry;
int day,month,year;
double daySalry;
pirintf("請輸入員工的日工資,工作時間");
scanf("%d%d%f",month,year,daySalry);
switch(month)
{
case 1: case 3: case 5:case 7: case 8:case 10:case 12: salry = daySalry*31; break;
case 2:
if(year%4==0||year/400==0)
salry = daySalry*28;
else salry = daySalry*29;
break;
case 4: case 6:case 9:case 11: salry = daysalry *30; break;
}
}
⑦ 用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語言怎樣算工資
#include "stdio.h"
main()
{ int i,j,m,s=0;
scanf("%d",&j);
for(m=0;m<j;m++)
{
scanf("%d",&i);
if(i==0)
{
break;
}
if(i>=100)
{
s=s+i/100;
i=i%100;
}
if(i>=50)
{
s=s+i/50;
i=i%50;
}
if(i>=10)
{
s=s+i/10;
i=i%10;
}
if(1>=5)
{
s=s+i/5;
i=i%5;
}
if(i>=2)
{
s=s+i/2;
i=i%2;
}
if(i>=1)
{
s++;
}
}
printf("%d",s);
getch();
}