用C置换函数
1. 思想置换
其实, 我们必须建立程序, 置换函数来交换元件的值, 如序程序是一个典型的.
要排列 2 号码, 可以想像我们一样 2 玻璃. 柠檬水容器的玻璃, B罩杯农药瓶. 我们如何进入杯柠檬汁B和移动到罩杯农药? 只需使用更 1 巾帼杯C罩杯,并开始移动:
- B1: 倒入柠檬杯到C杯. =>的中空, C包含柠檬
- B2: 倾农药B杯杯A =>乙空, 农药
- B3: 倒入杯子杯柠檬C B => B包含柠檬.
- 行. 农药小时, 含B柠檬水.
2. 排列码
不要在编程一样,我们将交换的价值 2 变量.
// e.g about swap in C - code by nguyenvanquan7826 #include <stdio.h> int main() { int a, b; printf("Nhap 2 so a, b:\n"); scanf("%d%d", &a, &b); printf("Ban da nhap:\na = %d \nb = %d\n", a, b); int temp = a; a = b; b = temp; printf("Sau khi hoan vi:\na = %d\nb = %d\n", a, b); return 0; }
结果:
进口 2 所以, B:
3
6您已进入:
A = 3
B = 6置换后:
A = 6
B = 3
行. 现在尝试分成置换函数眼冒金星:
3. 用C置换函数
// e.g about swap in C - code by nguyenvanquan7826 #include <stdio.h> void hoanvi(int a, int b) { int temp = a; a = b; b = temp; } int main() { int a, b; printf("Nhap 2 so a, b:\n"); scanf("%d%d", &a, &b); printf("Ban da nhap:\na = %d \nb = %d\n", a, b); hoanvi(a, b); printf("Sau khi goi ham hoanvi:\na = %d\nb = %d \n", a, b); return 0; }
结果:
进口 2 所以, B:
3
6您已进入:
A = 3
B = 6通话hoanvi后:
A = 3
B = 6
哦, 为什么我们没有结果置换?
有了这个程序,我们建立 1 排列函数改变之间的位置 2 端子a和b, 然而,我们已使用的值应取的值和b不发生变化,或者换句话说,它们是不相同的置换.
你明白引用,即函数调用传递的值 Honvi(该, B) a和b的立即值 (3 和 6) 被包括在函数,而不是变量a, 乙方应转, B的,我们并没有改变函数结束时.
正确的代码如下所示:
// e.g about swap in C - code by nguyenvanquan7826 #include <stdio.h> void hoanvi(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int a, b; printf("Nhap 2 so a, b:\n"); scanf("%d%d", &a, &b); printf("Ban da nhap:\na = %d \nb = %d\n", a, b); hoanvi(&a, &b); printf("Sau khi goi ham hoanvi:\na = %d\nb = %d \n", a, b); return 0; }
结果:
进口 2 所以, B:
3
6您已进入:
A = 3
B = 6置换后:
A = 6
B = 3
上面我们建立与下巴hoanvi 2 理由是 *a
和 *b
INT. *a
和 *b
即指针a和b指针. 在我们写的函数体 *a
, *b
(首席执行官: int temp = *a
) 再签收 *
表示指针的值.
因为给我们打电话,即传送变量的地址时,该函数指针应使用 hoanvi(&a, &b)
, 这里的标志 &
取变量a和变量b的地址.
4. C ++函数排列在
如果你写C ++ (用的.cpp结尾的文件) 他们可以写的内容更容易一些排列如下.
// e.g about swap in C - code by nguyenvanquan7826 #include <stdio.h> void hoanvi(int &a, int &b) // only in C++, file .cpp { int temp = a; a = b; b = temp; } int main() { int a, b; printf("Nhap 2 so a, b:\n"); scanf("%d%d", &a, &b); printf("Ban da nhap:\na = %d \nb = %d\n", a, b); hoanvi(a, b); printf("Sau khi goi ham hoanvi:\na = %d\nb = %d \n", a, b); return 0; }
或者可以使用函数 互换 在图书馆提供 算法
#include <stdio.h> #include <algorithm> // swap int main() { int a, b; printf("Nhap 2 so a, b:\n"); scanf("%d%d", &a, &b); printf("Ban da nhap:\na = %d \nb = %d\n", a, b); std::swap(a, b); printf("Sau khi goi ham hoanvi:\na = %d\nb = %d \n", a, b); return 0; }
或过! 现在你知道
您能解释一下整个地方吗?
INT温度=一;
a = b;
b =温度;
这是 3 通过temp互相交换值a和b的命令. 像是的 2 杯水A, B拿着柠檬想要, 如果要交换,则需要添加不包含任何东西的温度杯.
所以让我问一下temp int中的声明是什么
是整数变量的声明, 与int相同, 国际思想.
是的,我问问题是否需要我置换 5 我们仍然可以将临时变量用于整数吗??
就是你啊.
嘿,让我认识你 , 请通过 zalo 与我交朋友,以便我可以与我一起教学和分享经验.sdt .0966771824.我希望你能加入我