洛谷 字串題單P1957 口算練習題

2021-10-10 23:05:34 字數 1603 閱讀 2364

輸入格式

第一行為數值i

接著的i行為需要輸入的算式,每行可能有三個資料或兩個資料。

若該行為三個資料則第乙個資料表示運算型別,a表示加法運算,b表示減法運算,c表示乘法運算,接著的兩個資料表示參加運算的運算數。

若該行為兩個資料,則表示本題的運算型別與上一題的運算型別相同,而這兩個資料為運算數。

輸出格式

輸出2*i行。對於每個輸入的算式,輸出完整的表示式及結果,第二行輸出該表示式的總長度

輸入輸出樣例輸入4

a 64 46

275 125

c 11 99

b 46 64

輸出64+46=110

9275+125=400

1111*99=1089

1046-64=-18

9說明/提示

資料規模與約定

0運算數為非負整數且小於10000

對於50%的資料,輸入的算式都有三個資料,第乙個算式一定有三個資料。

我的題解(洛谷ide全wa,自測過)

#include

#include

int a[50]

=;char fh;

intmain()

return0;

}void

search

(char

*str)

else

if(str[j]

>=

'0'&&str[j]

<=

'9'&&flag!=0)

t=t*10+

(int

)str[j]

-'0'

;//flag!=0表示不是第一次出現數字了,那就把之前的×10之後把這個放在個位

else

if(flag!=0)

}if(str[j-1]

>=

'0'&&str[j-1]

<=

'9')

//最後這j++之後沒有走上面的判斷步驟,需要判斷一下如果最後乙個是數字的話把這個數字t要存到a裡面

}void

count

(int

*ans,

int cishu)

intlenth

(int x)

return op;

}

題目要點分析:

1.利用gets輸入字串的時候,如果前面輸入乙個整數n之後,那個回車會自動填入字串,這時候要用乙個fw存一下這個回車,這樣之後gets字串就正常了。

2.二維字元陣列作為函式變數的時候,指標可以用行和列的形式,指向這個二維陣列的某一行或者某一列,如上面的*str就是乙個二維陣列的第i行。

3.判斷乙個字串裡有多少單詞或者有多少個數並把他們存起來的方法,用for迴圈和乙個變數flag儲存,詳情見上面的函式search。

!注意!記得要判斷最後乙個是不是數字!

4.注意負數的話字串長度會因為負號而+1.

洛谷 P1957 口算練習題

並不難的一條題目 就幾個點要注意 1.計算數字的長度時 要記得可能有負數 對負數要特殊處理 2.對於這種不是很難 操作卻略繁瑣的題目 要先將每一步在草稿紙上分析好 再寫 以便保持思路的清晰 特別是我這種思維混亂的人 p1957 口算練習題 include include include includ...

字串專題練習 P1957 口算練習題

題目傳動門 解決幾個點,這個問題就算解決了 輸入 求長度字母轉數字 負數負數負數 還有乙個就是別自己加戲 比如我就習慣性的多輸入了很多空格 include include include include include include using namespace std int n intlen...

洛谷 P3375 KMP字串匹配

題目描述 給出兩個字串s1和s2,其中s2為s1的子串,求出s2在s1中所有出現的位置。為了減少騙分的情況,接下來還要輸出子串的字首陣列next。輸入輸出格式 輸入格式 第一行為乙個字串,即為s1 僅包含大寫字母 第二行為乙個字串,即為s2 僅包含大寫字母 輸出格式 若干行,每行包含乙個整數,表示s...