美文网首页
记一次秀代码的惩罚

记一次秀代码的惩罚

作者: 90d81be3ec65 | 来源:发表于2018-03-10 00:50 被阅读69次

在练习写排序算法时,写了个交换数据函数,本来简简单单一个函数,按照如下写法简单可行:

void swap(int &a, int &b) {
    int tmp = a;
    a = b;
    b = tmp;
}

可我脑子一热,想到可以不开辟另外的空间,进行交换操作,便有了下面代码:

void swap(int &a, int &b) {
    a = a + b;
    b = a - b;
    a = a - b;
}

乍一看好像也没什么毛病,但实际上有个严重的细节错误,先看如下代码输出:

#include <iostream>
using namespace std;

void swap(int &a, int &b) {
    a = a + b;
    b = a - b;
    a = a - b;
}

int main() {
    int a = 3, b = 3;

    swap(a, b);
    cout << a << " "<< b << endl; // 输出 3,3,没毛病

    swap(a, a);
    cout << a << endl; // 输出0,这tm!!!!!!!!!!!!!

    return 0;
}

看到输出就明白自己犯了这么傻的错误,自己和自己交换的时候把自己变成了0,相同数据交换虽然也能得到正确结果,但也没必要,交换改进后代码如下:

void swap(int &a, int &b) {
    if (a == b) return;
    a = a + b;
    b = a - b;
    a = a - b;
}

所以,以后别乱秀,小心秀死自己O(∩_∩)O~~

相关文章

  • 记一次秀代码的惩罚

    在练习写排序算法时,写了个交换数据函数,本来简简单单一个函数,按照如下写法简单可行: 可我脑子一热,想到可以不开辟...

  • 秀一秀更精彩

    秀一秀更精彩 ---记因一次“作品秀”引发的实践与思考 一、“作品秀”引发争议 每次开设区级公开课的时候,我还会十...

  • 五勤记·看呐,脱口秀

    五勤记·462:看呐,脱口秀 这是潭客第一次走进脱口秀的剧场。 脱口秀成为现代年轻人喜欢的一种娱乐方式,电影,隔着...

  • 畅谈代码秀

    不知从何时,身边掀起了一场代码秀的活动。 发现一个有趣的现象,所有的开发人员都认为活动有价值,但基本上没人主动。发...

  • 学python有感

    Talk is cheap, show you the code! 多说无益,秀代码! 第一次看到这句话,感觉编程...

  • 代码界的美图秀秀,分享漂亮的代码

    Hi!大家好呀!我是你们努力的喵哥! 大家有没有过分享自己的代码的经历那?比如,把代码片段发到微博之类的社交平台,...

  • 记一次代码重构

    单一职责 功能单一 功能单一是SRP最基本要求,也就是你一个类的功能职责要单一,这样内聚性才高。 比如,下面这个参...

  • 记一次代码优化

    一、前言 并发运行相比串行执行很好,因为其可以减少执行时间,但是并发用的不对,也会造成资源浪费,本文我们就来探究一...

  • 犯病日记

    我脑子有病,自怨自艾,记吃不记打记性不好。 一个人对于所谓的奖金惩罚激励或者惩罚都没有感觉了的时候大概就是个滚刀肉...

  • sklearn之svm

    SVC 实现策略 示例代码 参数解释: C=1.0错误项的惩罚系数,默认为1.0。C越大,对分错样本的惩罚程度越大...

网友评论

      本文标题:记一次秀代码的惩罚

      本文链接:https://www.haomeiwen.com/subject/gycvfftx.html