算命的,说好的我对计算机有天赋呢?

    去年偶然的情况下算了一次命,算命的说我对计算机和电那一方面有天赋,现在就想说一句,大哥你是认真的不,到现在我是真没发现我的天赋在哪,我只能相信勤能补拙和功夫不怕有心人了好不。
    今天接着学习《算法入门经典》这本书,看到了交换变量那道题我......哭笑不得。
    我知道交换变量有三种方法,(1)引入第三变量;(2)加减法;(3)异或法。
    代码如下:
    (1)引入第三变量:
                       int main()
                    { 
                  int  a, b, t; 
                 scanf("%d%d",  &a,  &b);  
                printf("a=%d b=%d\n",  a,  b);  
                    t = a;  
                   a = b;  
                   b = t; 
                printf("a=%d b=%d\n", a, b);
                    system("pause");
                    return 0;
                 }

验证:a = 5, b = 9;
则 t = 5;
a = 9;
b = 5;
(2)加减法 :
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
printf(“a=%d b=%d \n”, a, b);
a = a+b;
b = a-b; //b = a+b-b=a
a = a-b; //a = a+b-a=b
printf(“a=%d b=%d”, a, b);
system(“pause”);
return 0;
}
验证:a = 5, b = 9;
则 a = 5+9 = 14;
b = 14-9 = 5;
a = 14-5 = 9;
(3)异或法 :
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b); //假设 a = 5, b = 9,那么 a : 0101 b: 1001
printf(“a=%d b=%d \n”, a, b);
a = a^b;

                            b = a^b               
                                                              // b = 1100^1001 = 0101 = 5
                            a = a^b          
                                                              // a = 1100^0101 = 1001 = 9   
                       printf("a=%d b=%d", a, b);
                       system("pause");
                       return 0;
                     }

验证: 假设 a = 5, b = 9,那么 a : 0101 b: 1001;
则 a = 0101^1001 = 1100;
b = 1100^1001 = 0101 = 5;
a = 1100^0101 = 1001 = 9 ;
注意:用加减法计算数据可能会一处,它的适用范围很窄。
书上给了我第四种方法:
(4)
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf(“a=%d b=%d \n”, a, b);
printf(“a=%d b=%d\n”, b, a);
system(“pause”);
return 0;
}
就是一个简单的输入输出,真的是简单的我想哭,我为什么就没想到呢,所以,算命的,你说我的天赋该不会是修电脑吧,好吧,我觉得修电脑我更不行了,我连内存条什么的也是近一两年才知道的人指望我去给人家修电脑,指不定还要给人家赔钱。我是没天赋了,现在就想多看书多敲代码验证书上说的,多练习,多学多思考,见得多了总能想到解决办法的。

猜你喜欢

转载自blog.csdn.net/weixin_43223421/article/details/82798453
今日推荐