NOIP2018普及T1暨洛谷P5015 標題統計 題解
阿新 • • 發佈:2018-12-20
分析:
這道題大概是給個簽到分吧。很顯然的字串操作。本篇題解主要幫助初學者,請大佬略過。
首先給大家介紹一個叫
的東東。
s☞字串的名稱
他有什麼作用呢?
將一行字元從檔案或螢幕中讀入,可以讀空格,遇到換行跳出。 —— by 本人
此題也明顯告訴是讀入僅一行,我們可以這麼做。
哇!我們現在可以在計算機裡進行操作了耶!
在這裡告訴大家noip很重要的一點,讀完題要看資料範圍。
為什麼呢?因為我們可以理解題目後預估自己的水平後,結合資料範圍估計一下自己大概往多少分的目標去。
扯回正題,那麼我們如何知道他給了我們幾個字元呢?我們之前一起讀了進去,這咋辦呢?
再介紹一個東東——
這裡的n指字串的名稱。
我們在程式碼中進行如下操作
int n=strlen(s);
就能把n記為s串的長度了。
接下來我們看到資料範圍:
可以窮舉一遍!
我們在程式中進行如下操作:
for(int i=0;i<n;i++)
{
//do something
}
然後,我們再採用if語句判斷即可。
40分:
if(s[i]>='0'&&s[i]<='9') ans++;
80分:
我暫時都不清楚80分是咋得的。。。
100分:
if(s[i]>='A'&&s[i]<='Z')
ans++;
if(s[i]>='a'&&s[i]<='z')
ans++;
if(s[i]>='0'&&s[i]<='9')
ans++;
AC完整程式碼:
#include<cstdio> #include<cstring> using namespace std; int main() { char s[10]; gets(s); int n=strlen(s); int ans=0; for(int i=0;i<n;i++) { if(s[i]>='A'&&s[i]<='Z') ans++; if(s[i]>='a'&&s[i]<='z') ans++; if(s[i]>='0'&&s[i]<='9') ans++; } printf("%d",ans); return 0; }