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