【面试题】C语言:使用函数实现两个数的交换

#include<stdio.h>

int swap(int *i,int *j)
{
	 int tmp;
	 tmp=*i;
	 *i=*j;
	 *j=tmp;
}

int main()
{
	 int i=0;
	 int j=0;
	 scanf("%d",&i);
	 scanf("%d",&j);
	 swap(&i,&j);
	 printf("%d  ",i);
	 printf("%d",j);
	 return 0;
}
时间: 2024-12-20 02:08:43

【面试题】C语言:使用函数实现两个数的交换的相关文章

使用函数实现两个数的交换。

#include <stdio.h> void swap(int *a,int *b) { int tmp; tmp=*a; *a=*b; *b=tmp; } int main() { int a=20; int b=10; swap(&a,&b); printf("a=%d b=%d",a,b); return 0; }

利用函数调用实现两个数的交换

#include <stdio.h> #include<stdlib.h> void swap(int *pa, int *pb) { int tmp = *pa; *pa = *pb; *pb= tmp; } int main() { int n1 = 0; int n2 = 0; char *p1 = &n1; char *p2 = &n2; printf("请输入两个数:"); scanf_s("%d%d", &

两个数的交换

方法一:使用函数实现两个数的交换 #include<stdio.h> int fun(int *a,int *b) { int tmp; tmp=*a; *a=*b; *b=tmp; } int main() { int x,y; printf("please input two number:\n"); scanf("%d %d",&x,&y); printf("x=%d,y=%d\n",x,y); fun(&

使用函数输出两个数的最大值

使用函数输出两个数中的最大值: 其中:第一行输入一个整数n,代表有n组测试数据: 后面输出的是两个值中较大的一个,每组测试数据占一行. 1 #include<stdio.h> 2 int max(int x,int y); 3 int main(void) 4 { 5 int a,b,c; 6 int n,i; 7 scanf("%d",&n); 8 for(i=0;i<n;i++){ 9 scanf("%d%d",&a,&

如何不运用第三方变量实现两个数的交换

当遇到交换两个变量的时候,我们通常使用的是借助第三方变量实现两个数的交换.那么如果不使用第三方变量时,该怎么操作呢. 下面有两种方法: 1.通过已有的两个变量之间的加或减实现: 这种方法对于两个都是无限接进int取值范围,而相加超出int取值范围的情况不适用. 2.通过异或实现(异或符号为^) ******************************************************************************************************

如何不用第三个变量实现两个数的交换

一般我们在写程序时如果遇到两个数需要交换时写作如下: 1 int x,y; 2 3 int temp; 4 5 temp=x;x=y;y=temp; 而如果不允许有第三个变量出现即不允许有temp出现时应该如何做呢?可以写作如下: 1 int x,y; 2 3 x=x+y; 4 5 y=x-y; 6 7 x=x-y;//上述一般可以满足,但是有时候x+y或许或出现上溢或者下溢. 而利用两个数的异或或许更加巧妙—— 异或有如下性质: 交换律:x^y=y^x 结合律:x^(y^z)=(x^y)^z

使用异或实现两个数的交换

实例:将数组的头尾两端依次对调(采用异或的方法实现两数的交换,不需要临时变量) #include <iostream> #define N 10 void swap(int *a, int *b) //交换a,b { *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; } void reverse_arry(int a[], int arry_len) //将数组的头尾两端互换 { int i = 0, j = arry_len-1; while(i <

如何在不介入第三个变量的情况下实现两个数的交换

如何在不介入第三个变量的情况下实现两个数的交换: 1 package myeclipseFiles2; 2 3 public class Operator { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 int a=6; 8 int b=1; 9 System.out.println(a+":"+b); 10 11 //方法一:不借助第三个变量完成两个数的交换 1

面试题:和为S的两个数

题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述:对应每个测试案例,输出两个数,小的先输出. 方法1:因为是排序的数组,借鉴快排 import java.util.ArrayList; public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<