這是一道計算獎金的題!
題目為:利潤小于10萬,提10%,大于10萬小于20萬,提7.5%,大于20萬小于40萬,提5%,輸入利潤,輸出獎金!我寫出來是這樣的,其中x為獎金,y為利潤。但我不知道x如何賦值!因為c語言規定if~else陳述句中要先給變數賦值后判斷,可如果給x賦值為常數或能直接計算出值得運算式的話,無論輸入多少利潤,輸出結果都為x所賦的值或運算式的值!連續試了半天,也沒能找到正確方法,搞得很是頭疼!懇請哪位大神能不吝賜教!感激不盡!!!另,本人初學c不足半月!以前沒學過編程!不知道找誰幫忙!只好來這兒發帖!求拯救!!!!!!!!!!!!!!
uj5u.com熱心網友回復:
說真的,沒讀懂你的意思,,,x不需要賦值吧,它是通過輸入的y計算出來的。
uj5u.com熱心網友回復:
x不需要輸入,而且你少了最后一個else(或者少了個默認值),比如所有的分支都不滿足,那x就沒有值了。
還有列印格式不對,你這樣只是列印一位長度,所以列印結果不對
另外,你的計算公式是不是不對?
int main()
{
float x=0.0f, y; //這里要么給x賦個初始值
scans("%f", &y);
if (y<=100000)
{
x = y*0.1f;
}
else if (y>100000 && y<=200000)
{
x =
100000 *0.1f + (y-100000)*0.075f; //10萬的部分應該是固定的吧,不是用y乘0.1吧?
}
else if (y>200000 && y<=400000)
{
x = 100000*0.1f + 100000*0.075f + (y-200000)*0.05;
}
esle
{
x = 0.0f; //要么這里加個else分支給x賦個默認值
}
printf("
%.0f" , x); //列印格式,這里給你保留到整數部分
return 0;
}
uj5u.com熱心網友回復:
scan_s還少一個引數,你那個引數對應的應該是scanf函式
uj5u.com熱心網友回復:
參考 2 樓 qybao的回復: x不需要輸入,而且你少了最后一個else(或者少了個默認值),比如所有的分支都不滿足,那x就沒有值了。
還有列印格式不對,你這樣只是列印一位長度,所以列印結果不對
另外,你的計算公式是不是不對?
int main()
{
float x=0.0f, y; //這里要么給x賦個初始值
scans("%f", &y);
if (y<=100000)
{
x = y*0.1f;
}
else if (y>100000 && y<=200000)
{
x = 100000 *0.1f + (y-100000)*0.075f; //10萬的部分應該是固定的吧,不是用y乘0.1吧?
}
else if (y>200000 && y<=400000)
{
x = 100000*0.1f + 100000*0.075f + (y-200000)*0.05;
}
esle
{
x = 0.0f; //要么這里加個else分支給x賦個默認值
}
printf("%.0f" , x); //列印格式,這里給你保留到整數部分
return 0;
}
100000以下提10%,是指按利潤值提相應獎金!不是100000以下,通通以100000為基準,計算獎金的!
uj5u.com熱心網友回復:
參考 2 樓 qybao的回復: x不需要輸入,而且你少了最后一個else(或者少了個默認值),比如所有的分支都不滿足,那x就沒有值了。
還有列印格式不對,你這樣只是列印一位長度,所以列印結果不對
另外,你的計算公式是不是不對?
int main()
{
float x=0.0f, y; //這里要么給x賦個初始值
scans("%f", &y);
if (y<=100000)
{
x = y*0.1f;
}
else if (y>100000 && y<=200000)
{
x = 100000 *0.1f + (y-100000)*0.075f; //10萬的部分應該是固定的吧,不是用y乘0.1吧?
}
else if (y>200000 && y<=400000)
{
x = 100000*0.1f + 100000*0.075f + (y-200000)*0.05;
}
esle
{
x = 0.0f; //要么這里加個else分支給x賦個默認值
}
printf("%.0f" , x); //列印格式,這里給你保留到整數部分
return 0;
}
不過還是多謝了!
uj5u.com熱心網友回復:
參考 2 樓 qybao的回復: x不需要輸入,而且你少了最后一個else(或者少了個默認值),比如所有的分支都不滿足,那x就沒有值了。
還有列印格式不對,你這樣只是列印一位長度,所以列印結果不對
另外,你的計算公式是不是不對?
int main()
{
float x=0.0f, y; //這里要么給x賦個初始值
scans("%f", &y);
if (y<=100000)
{
x = y*0.1f;
}
else if (y>100000 && y<=200000)
{
x = 100000 *0.1f + (y-100000)*0.075f; //10萬的部分應該是固定的吧,不是用y乘0.1吧?
}
else if (y>200000 && y<=400000)
{
x = 100000*0.1f + 100000*0.075f + (y-200000)*0.05;
}
esle
{
x = 0.0f; //要么這里加個else分支給x賦個默認值
}
printf("%.0f" , x); //列印格式,這里給你保留到整數部分
return 0;
}
不過確實少了用來限定y>4000000的一個分支!多謝指教!說實話,就怕一個人在那兒抓瞎!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107177.html
標籤:C語言
上一篇:一元多項式相加,幫忙修改
下一篇:c++基礎問題