信息学奥赛一本通 1414:【17NOIP普及组】成绩 | 洛谷 P3954 [NOIP2017 普及组] 成绩
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1414:【17NOIP普及组】成绩 | 洛谷 P3954 [NOIP2017 普及组] 成绩
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1414:【17NOIP普及組】成績
洛谷 P3954 [NOIP2017 普及組] 成績
【題目考點】
1. 算術(shù)表達(dá)式
2. 自動類型轉(zhuǎn)換
- 低精度類型與高精度類型計算結(jié)果是高精度類型
常量0.3的類型是double,常量100的類型是int,0.3*100這個表達(dá)式的值的類型是double。
【解題思路】
【注意: 數(shù)據(jù)范圍】數(shù)據(jù)說明中,指明了A,B,C都是10的倍數(shù),10的倍數(shù)乘以0.2,0.3或0.5得到的都是整數(shù),因此本題不需要聲明浮點型量,直接用整型量參與運算即可。
0.3*100的類型是double,可以轉(zhuǎn)為整型輸出,或保留0位小數(shù)輸出,或者以%g形式輸出。
【題解代碼】
解法1:用cin, cout
cout的輸出形式相當(dāng)于printf("%g"),當(dāng)浮點數(shù)有效數(shù)字少的時候,去掉小數(shù)點后末尾的0輸出。
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;cin >> a >> b >> c;cout << a*0.2+b*0.3+c*0.5;return 0; }解法2:用scanf, printf("%g")
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);printf("%g", a*0.2+b*0.3+c*0.5); return 0; }解法3:用scanf, printf("%d")
將結(jié)果強制轉(zhuǎn)為整型
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);printf("%d", int(a*0.2+b*0.3+c*0.5));//強制轉(zhuǎn)為整型 return 0; }解法4:用scanf, printf("%f")
保留0位小數(shù)
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);printf("%.0f", a*0.2+b*0.3+c*0.5);//保留0位小數(shù) return 0; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通 1414:【17NOIP普及组】成绩 | 洛谷 P3954 [NOIP2017 普及组] 成绩的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(2042:【例5.10
- 下一篇: 满二叉树及完全二叉树的相关性质证明