多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > SDUT 2411 Pixel density(模擬,字符串)

SDUT 2411 Pixel density(模擬,字符串)

來源:程序員人生   發布時間:2015-05-20 10:40:58 閱讀次數:3480次

題目鏈接:SDUT 2411 Pixel density

       這1題,可以說題目略坑。為何呢,第1就是他題意描寫過于模糊,第2題輸出格式有點坑(說到底還是題意不要表述清晰)。現在我們來看看這1題吧,這1題是 《2012年"浪潮杯"山東省第3屆ACM大學生程序設計比賽》 的題。本題可以說是1道側重于細節的1道題。對細節沒有掌控清楚的話,就是WA。聽說當時某些隊伍就是由于細節沒有掌控好,結果硬是WA了26次(深表同情啊)。我們仔細視察題目的話,可以發現 他給我們的格式是 “名稱 + 屏幕大小(以英寸為單位)+ inches + 屏幕規格(Wp*Hp) +  類型”。其中加號的位置可以有若干個空格,固然在名稱和類型中也能夠有若干個空格。最后輸出的時候,字符串之間只能有1個空格,類型必須轉化為小寫,最后1行不能有換行符。還有1個坑,就是當Inch為0的情況,這是你就要另外處理。題目想說的大概就是這樣。

      這1題我的解法是這樣的: 首先,我先建立1個2維數組,將輸入的字符串,看成若干個不包括空格的字符串。然后找到最后1個 inches 并將其的位置記錄下來。這樣的話,它前1個字符串自然就是屏幕的大小了,后1個字符串就是規格了。這樣我們就能夠將本來1大串的字符串,分開處理了。那我們以甚么來判斷結尾呢?仔細研究1下題目,發現它對每個樣例就只有1行,那末我們就能夠用 ’ ‘來判斷輸入結束了。下面附上代碼,供大家輔助理解我想表達的意思。

【代碼以下】

#include <stdio.h> #include <string.h> #include <math.h> #define MAXN 100 + 10 #define N 1000 + 10 #define NES 1e⑹ char s[N][MAXN]; int T, flog, cnt; char szName[MAXN],szType[MAXN],Outstr[3*MAXN]; //不用太糾結我為何是3*MAXN,只要讓他的值大于2*MAXN就行了 double PPI(double Inch, double Wp, double Hp){ return sqrt( Wp * Wp + Hp * Hp ) / Inch; } void Change(char *str){ int len = strlen(str); for(int i = 0; i < len; i++){ if(str[i]>='A'&&str[i]<='Z') str[i] += 32; } return ; } void Init(){ flog = cnt = 0; memset(szName,0,sizeof(szName)); memset(szType,0,sizeof(szType)); } int main(){ int i, p, k = 0; double Inch, Wp, Hp, ans; scanf("%d",&T); getchar(); while(T--){ Init(); while(scanf("%s",s[cnt])){ if(!strcmp(s[cnt],"inches")) flog = cnt; //保存最后1個Inches的位置 if(getchar() == ' ') break; cnt++; } sscanf(s[flog⑴],"%lf",&Inch); sscanf(s[flog+1],"%lf*%lf",&Wp,&Hp); for(i = 0; i < flog⑴; i++){ if(i) strcat(szName," "); strcat(szName,s[i]); } for(i = flog+2, p = 0; i <= cnt; p++, i++){ if(p) strcat(szType," "); strcat(szType,s[i]); } Change(szType); if(fabs(Inch) < NES) ans = 0.00; //由于存在浮點數誤差所以不能直接寫成 Inch == 0 else ans = PPI(Inch,Wp,Hp); sprintf(Outstr,"Case %d: The %s of %s's PPI is %.2lf.",++k,szType,szName,ans); printf("%s",Outstr); if(T) printf(" "); } return 0; }

         這1題雖然AC了,但是我還是有1些疑問。題意既然沒有說 類型 1定是大寫的,那末就有小寫的存在,既然有小寫的存在那末在類型中不能有inches呢。嗨,說到底這1題題意過于朦朧,讓人揣摩不清。還有人使用屏幕尺寸前的兩個空格進行判斷,也是能夠AC。現在想一想估計也能明白,當時為何會有人WA了26次。估計就是斟酌了,太多了。如果大家還有甚么其他的看法,歡迎1起探討。

(如有毛病,歡迎指正,轉載請注明出處)



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产一级理论免费版 | 成人在线观看免费爱爱 | 亚洲欧美日韩综合在线 | 国产美女亚洲精品久久久综合91 | 中文字幕乱码无限2021丫丫 | 爱操在线视频 | 国产福利一区二区三区视频在线 | 久久毛片视频 | 欧美一级毛片无遮 | 日本精品免费 | 国产福利不卡视频在免费 | 波多野结衣在线网站 | 亚洲精品伊人久久久久 | 一级a性色生活片久久毛片 一级a性色生活片毛片 | 日韩欧美中文 | 日本爱爱免费视频 | 欧美亚洲尤物久久精品 | 在线观看亚洲成人 | 欧美式free群乱 | 名优写真一区二区在线 | 欧美国产中文字幕 | 亚洲天堂欧美 | 亚洲一区二区三区在线 | 麻豆69堂免费视频 | 国产人成午夜免费看 | 国产极品美女在线观看 | 欧美激情一区二区三区在线播放 | 国产精品合集一区二区三区 | 一区二区三区四区在线观看视频 | 日韩18| 精品综合一区二区三区 | 欧美不卡视频在线 | 免费高清黄色 | 亚洲国产精品久久日 | 91在线网站 | 欧美日韩aa一级视频 | 欧美成人看片一区二区三区尤物 | 一区二区三区不卡在线观看 | 国产高清日韩 | 久久手机看片 | 精品一区二区三区在线观看 |