本文目錄一覽:
- 1、關於C語言的一個問題
- 2、c語言算獎金的小問題
- 3、用c語言實現下列要求
- 4、C語言小白學習過程中的問題
- 5、c語言錯誤
關於C語言的一個問題
你好!!
你定義的變量是 long 類型,在計算的時候,卻使用小數在計算,類型不匹配,數據會丟失
你把 long 類型改成 double 類型,輸入類型 %ld 改成 %lf
把 getch 函數改成 getchar ,讓程序停住
完整的修改後代碼:
#includestdio.h
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
printf(“input lirun:\n”);
scanf(“%lf”,i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
if(i=100000)
bonus=i*0.1;
else if(i=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i=400000)
bonus=bonus2+(i-200000)*0.02;
else if(i=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf(“bonus=%lf\n”,bonus);
getchar();
return 0;
}
c語言算獎金的小問題
#includeiostream.h
int main()
{
long int i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+400000*0.03;
bonus10=bonus6+600000*0.015;
cini;
if(i=100000)
bonus=i*0.1;
else if(i=200000i=100000)
bonus=bonus1+(i-100000)*0.075;
else if(i=400000i=200000)
bonus=bonus2+(i-200000)*0.05;
else if(i=600000i=400000)
bonus=bonus4+(i-400000)*0.03;
else if(i=1000000i=600000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
coutbonusendl;
system(“PAUSE”); 改完的
用c語言實現下列要求
# include stdio.h
int main( )
{
int i;
double bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+100000*0.05;
bon6=bon4+100000*0.03;
bon10=bon6+400000*0.015;
printf(“請輸入當月利潤i:”);
scanf(“%d”,i);
printf(“i=%d\n”,i);
if(i=100000){
bonus=i*0.1;
}else if(i=200000){
bonus=bon1+(i-100000)*0.075;
}else if(i=400000){
bonus=bon2+(i-200000)*0.05;
}else if(i=600000){
bonus=bon4+(i-400000)*0.03;
}else if(i=1000000){
bonus=bon6+(i-600000)*0.015;
}else{
bonus=bon10+(i-1000000)*0.01;
}
printf(“獎金總數為:%10.2f\n”,bonus);
return 0;
}
【答題不易,請採納謝謝】
C語言小白學習過程中的問題
不是溢出,是bonus這個變量沒有初始化,profit的值是通過scanf用戶輸入的,但是bonus沒有初始化,當profit=200000時,會執行(bonus)=bonus+(profit-100000.0)*0.075這句代碼,因為bonus變量沒有初始化,結果就會很奇怪(數值非常大或者其他的情況)。除了這個問題以外scanf和printf函數的調用也有些小問題,profit變量是double類型的,scanf或者printf遇到double類型的應該用%g或者%lf而不是%f,%f是用於float類型變量的,用%f會有編譯器警告(能編譯成功但是有警告),而且數據也會不準確。
c語言錯誤
題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高
於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提
成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於
40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於
100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。
2.程序源代碼:
#include “stdio.h”
void main()
{
long int i;
double 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;
scanf(“%ld”,i);
if(i=100000)
{
bonus=i*0.1;
else if(i=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf(“bonus=%d”,bonus);
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180285.html