#C语言入门
前言
本篇文章主要以C语言中的实现两数交换的几种方法展开介绍。
个人见解,若有不足或错误可沟通指正
1.方法介绍
在C语言中实现两数交换的方法有多种,这里简单介绍三种
(1)借用第三变量实现两数交换
(2)仅用两变量实现两数交换
(3)使用自定函数实现两数交换
下面将展开介绍这三种方法
2.方法详解
2.1借用第三变量实现两数交换
借用第三变量,顾名思义就是在原有的两变量的基础上再用一个变量实现两数交换
源码:
#include<stdio.h>
int main()
{
double num1, num2, num3;
printf("请输入要交换的数\n");
scanf("%lf%lf",&num1,&num2);
printf("交换前\n数1 %lf 数2 %lf\n", num1, num2);
num3 = num1;
num1 = num2;
num2 = num3;
printf("交换后\n数1 %lf 数2 %lf\n", num1, num2);
return 0;
}
代码解释
头文件
#include<stdio.h>
int main()
{
return 0;
}
头文件部分不在做过多解释,不理解的可以翻看前面出的文章
代码核心
num3 = num1;
num1 = num2;
num2 = num3;
解释
首先将num1的值赋给num3,num3=原num1;
其次将num2的值赋给num1,现num1=原num2;
最后将num3的值赋给num2,现num2=num3;
此时就将num1与num2的值完成了转换。
运行结果:
看法:
这是最基础也是最为常见的两数交换方法,相较另外两种该种较为冗杂。
2.2仅用两变量实现两数交换
这种方法不引用第三变量就可完成两数交换
源码:
#include<stdio.h>
int main()
{
double num1, num2;
printf("请输入要交换的数\n");
scanf("%lf%lf", &num1, &num2);
printf("交换前\n数1 %lf 数2 %lf\n", num1, num2);
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
printf("交换后\n数1 %lf 数2 %lf\n", num1, num2);
return 0;
}
代码解释
代码核心
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
解释
首先将num1与num2的和赋给num1,现num1=sum(代指num1+num2);
然后将num1-num2赋给num2,现num2=sum-num2=num1;
最后将num1-num2赋给num1,现num1=sum-现num2=sum-num1=num2.
此时也就完成了两数转换。
运行结果:
看法:
该方法相较上一种不需要定义第三变量,代码更加简短,使用更加方便。
2.3使用自定函数实现两数交换
自定函数就要是自己封装的一个函数,将两数交换的方法放到一个自己写的函数体中,然后在使用的时候对其调用。
源码:
#include<stdio.h>
double swap(double tem1, double tem2)//自定函数
{
double tem3;
tem3 = tem1;
tem1 = tem2;
tem2 = tem3;
printf("交换后\n数1 %lf 数2 %lf\n", tem1, tem2);
}
int main()//主函数
{
double num1, num2;
printf("请输入要交换的数\n");
scanf("%lf%lf", &num1, &num2);
printf("交换前\n数1 %lf 数2 %lf\n", num1, num2);
swap(num1, num2);//对自定函数进行引用
return 0;
}
代码解释
代码核心
double swap(double tem1, double tem2)
{
double tem3;
tem3 = tem1;
tem1 = tem2;
tem2 = tem3;
printf("交换后\n数1 %lf 数2 %lf\n", tem1, tem2);
}
解释
这就是一个自定的返回类型为double类型,函数名为swap的自定函数;
swap后小括号中放的是两个形参;
中括号内的是函数体,内容解释可参考2.1的解释
在使用时只需引用
swap(实参1,实参2);
如上文源码
运行结果
看法:
这种方式适用于需要多次使用的场景,可以多次调用,减少占用空间和打代码时间。
写在最后
以上就是对使用C语言实现两数交换的几种方式介绍,几种方式各有千秋,希望对大家有用。
如有疑问或错误请在评论区提出或指正,创作不易,不喜勿喷。