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比較適合一些。