刷題小知識總結點
阿新 • • 發佈:2020-08-16
1.大小寫字母互轉以及判斷:
用小寫字母減去'a'+'A'就能得到大寫字母啦。
用大寫字母加上'a'-'A'就能得到小寫字母啦。
(1).isupper()是判斷是否是大寫字母的系統函式,tolower()是將大寫字母轉換為小寫字母;
(2).strstr()是在一個字串裡面給定一個字串,尋找有沒有這個字串;
同時在C++當中,main函式是能夠遞迴的,下面是一個小寫轉大寫的例子
if(cin>>aa){ if(ch>='a'&&ch<='z') ch+='A'-'a';//轉換大小寫 cout<<ch; main();//遞迴呼叫 }
2.編譯錯誤
改為>=C11滴編譯器
3.函式floor(x)返回不超過x的最大整數;int n=floor(sqtr(m)+0.5),加0.5是為了減少誤差;
4.計算執行時間:標頭檔案:#include
clock()/CLOCKS_PER_SEC得到的是以“秒”為單位的數值;
5.要計算只包含加法和減法和乘法的整數表示式除以正整數n的餘數:可以在每步計算之後對n取餘,計算結果不變;
例如:原始:
int sum=0; for(int i=1;i<=n;i++) { int a=1; for(int j=1;j<=i;j++) a*=j; sum+=a; } cout<<sum%1000000<<endl;
每步取餘:
int sum=0;const int mod=1000000;
for(int i=1;i<=n;i++)
{
int a=1;
for(int j=1;j<=i;j++)
a=(a*j%mod);
sum=(sum+a)%mod;
}
cout<<sum<<endl;
6.scanf的輸入格式,空格和tab和回車符都是無關緊要的,所以按enter鍵並不意味著輸入的結束,在window下輸入完畢後,先按enter鍵,再按CTRL+z,最後再按enter,即可結束輸入;在Linux下,按CTRL+D;
7.從陣列a複製k個元素到陣列b,可以這樣做:memcpy(b,a,sizeof(int)k),如果是浮點數則:memcpy(b,a,sizeof(double)