HDOJ 1036 输入输出 水
生活随笔
收集整理的這篇文章主要介紹了
HDOJ 1036 输入输出 水
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1036
我也不知道這題考查什么,感覺(jué)就是考細(xì)心。
1.時(shí)間要能正確的讀,輸出的格式要對(duì)。
2.結(jié)果要四舍五入。
說(shuō)一下四舍五入的方法,剛從別人那里學(xué)的。
假設(shè)a為要舍入的數(shù),res為結(jié)果。
1.精確到個(gè)位。int res = a + 0.5;
2.精確到小數(shù)點(diǎn)后第k位。
double a, res, base; int k; double base = pow(10.0, k * 1.0); res = ((int)(a * base + 0.5)) / base;經(jīng)簡(jiǎn)單測(cè)試,有效。
PS:上面的高亮顯示貌似有問(wèn)題啊,base不是C++的保留字吧。
下面是解題代碼。
#include <iostream> using namespace std;int isQualified(char *str) {for (int i = 0;i < strlen(str);i ++){if (str[i] == '-')return 0;}return 1; }int main () {int sectionNum;double totalDist;scanf("%d%lf",§ionNum,&totalDist);char aLine[1000];int teamId;while (scanf("%d",&teamId) != -1){//以秒為單位的總時(shí)間double timeInSec = 0.0;int hour,min,sec;int iIsQualified = 1;char aRec[100];for (int i = 1;i <= sectionNum;i ++){//一個(gè)記錄scanf("%s",aRec);//如果沒(méi)有'-',才需要加入總時(shí)間if (isQualified(aRec)){sscanf(aRec,"%d:%d:%d",&hour,&min,&sec);timeInSec += hour * 3600 + min * 60 + sec;}elseiIsQualified = 0;}if (iIsQualified == 0){printf("%3d: -\n",teamId);continue;}double secPerKm = timeInSec / totalDist;int resMin = secPerKm / 60;int resSec = secPerKm - resMin * 60 + 0.5;if (resSec == 60){resSec = 0;resMin ++;}//如果resSec是單數(shù),要補(bǔ)0printf("%3d: %d:%02d min/km\n",teamId,resMin,resSec);}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/peaceful-andy/archive/2012/08/19/2646864.html
總結(jié)
以上是生活随笔為你收集整理的HDOJ 1036 输入输出 水的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: webView loadData 中文乱
- 下一篇: 小米金融逾期一天的影响