刷题小知识总结点
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)k);如果是全部复制则:memcpy(b,a,sizeof(a));
作者:Better又
出处:https://www.cnblogs.com/lwyy1223-/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。