常错题型

1:string s 不能为s=s+(1+‘0’); 应该为s+=(1+‘0’); 或是s+=‘0’;
2:

int k=n-s.size();
    for(i=1;i<=n-s.size();i++) s+='0';
int k=n-s.size();
    for(i=1;i<=k;i++) s+='0';

以上两种代码有时是不一样的,下面的是正确的,错误原因就是我们在操作的过程中不断的给s加入新的值,所以他的长度不断改变,所以发生错误。

题目链接 从这个题中得知
3:string 操作中不能有 s1[i]=s2[j]这样的操作复制字符串
5:在queue中进行pop()或top的时候一定要判断是不是可以有,如果没有元素而进行了这些操作可能会导致段错误。
6:定义long long 及int时一定要区分如果混乱的时候可能会出现0,进而出现浮点错误。
7:在调用函数的时候,如果调用参数为数组,注意调入的是指针,在调用完之后数组也会发生改变。
8:我们使用三角函数的时候,计算的是弧度制,所以,我们应该将角度转化为弧度计算,假设是60°,我们应将其转化为Π/3,计算的时候应该将Π的的值带入

double ans=(double)sin((double)x*1.0/180*3.1415926);

9:&&使用时一定要注意否则容易出现错误,特别是题中用到逻辑变量的时候,一定要加上括号,否则可能因为优先级出现逻辑错误

10:在使pow这个函数的时候,一定不要直接放在printf中否则会造成错误,有兴趣的可以试一下下面的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    printf("%d\n",pow(10,5));
    int x=pow(10,5);
    printf("%d\n",x);
    return 0;
}

11: 使用while(m–)类似的表达的时候,一定要注意本来的m时大于等于0还是小于0,如果时小于0的话不能用这样来表达因为如果m本来时小于0的,默认m<0是真,while(m–)类似的表达,只有当m=0的时候才会跳出来

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
#define ll long long
int main()
{
    int m=-5;
    int ans=0;
    while(m++)
    {
        ans+=1;
    }
    printf("%lld\n",ans);
    return 0;
}

12:什么样的数据类型,就要对应什么样的写法,long long对应%lld,不对应了也会造成错误。(所以用cout的话可以解决很多问题)

持续更新中~~~~~~~~~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值