当前位置:首页 » 编程语言 » c语言两个整数的互换
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言两个整数的互换

发布时间: 2023-05-24 06:47:42

㈠ 在c语言中如何将两个数进行互换

将两个数进行互换的方法有两种形式:
1、借助中间变量完成,此方法直观,易理解,使用最多
2、不需要中间变量,通过变量身的运算完成交换。
参考代码:
方法1:
int a=2,b=3,t;
t=a; //先将a存储到临时变量t中
a=b; //将b存储到a中
b=t; //将临时变量中的原a值存储到b中
printf("a=%d b=%d\n", a,b );
方法2:
int a=2,b=3,t;
a += b ; //把两数之和存到a中
b= a-b ; //用两数和减去b可得原a,存储到b中
a= a-b ; //因为b现在是原a值,所以,用两数和减去b(原a)可得 原b,存储到a中
此方法,还可以用异或运算来实现,原理相同。

㈡ 关于C语言交换两个数(有关指针)

在C语言中,通过函数参数传递,进行两个数的交换,必须采用传递指针的方式,同时,在函数中,一定要对两个指针中的数据内容进行交换才能达到交换实参地址中数据的目的。

如:

//正确的交换函数
voidswap1(int*p1,int*p2)
{
intp;
p=*p1;//通过*引用地址中的数据,进行交换
*p1=*p2;
*p2=p;
}
//错误的交换函数
voidswap2(int*p1,int*p2)
{
int*p;
p=p1;//这里进行改变的是形参的值,而形参只是实参的一个副本,形参本身的变化,是不能改变实参的值的!!
p1=p2;
p2=p;
}

PS:要正确认识C语言中的实参与形参,形参在使用中只是实参的副本,若形参是指针,我们可以通过形参改变实参地址中的内容,但无法改变实参本身的值!

㈢ 输入两个整数,交换后输出 C语言怎么编程

利用C语言来实现交换两个变量的值,需要定义三个变量:

#include<stdio.h>

int main()

{

int x,y,temp;//定义三个变量

printf("请输入分别x和y的值 ");

scanf("%d %d",&x,&y);//终端输入变量x、y

temp=y;//把y赋值给temp

y=x;//把x赋值给y

x=temp;//把y赋值给temp

printf("%d %d",x,y);//输出交换后x和y的值

return 0;

}

结果如下图所示:

(3)c语言两个整数的互换扩展阅读

其他解决该问题的方法

需要定义两个变:

#include<stdio.h>

int main()

{

int x,y;//定义两个变量

printf("请输入分别x和y的值 ");

scanf("%d %d",&x,&y);//终端输入变量x、y

x=y-x;

y=y-x;//把x赋值给y

x=y+x;//把y赋值给x

printf("%d %d",x,y);//输出交换后x和y的值

return 0;

}

㈣ 输入两个整数,交换后输出 C语言怎么编程

利用C语言来实现交换两个变量的值做纯山,需要定义三个变量:裤乱

#include<stdio.h>

int main()

{

int x,y,temp;//定义三个变量

printf("请输入分别x和y的值 ");

scanf("%d %d",&x,&y);//终端输入变量x、y

temp=y;//把y赋值给temp

y=x;//把x赋值给y

x=temp;//把y赋值给temp

printf("%d %d",x,y);//输出交换后x和y的值

return 0;

}

结果如下图所示:

(4)c语言两个整数的互换扩展阅读

其他解决该问题的方法

需要定义两个变:

#include<stdio.h>

int main()

{

int x,y;//定义两个变量

printf("请输入分别x和y的值 ");

scanf("%d %d",&x,&y);//终端输入变量x、y

x=y-x;

y=y-x;//把x赋值给纯中y

x=y+x;//把y赋值给x

printf("%d %d",x,y);//输出交换后x和y的值

return 0;

}

㈤ 用C语言编写程序实现两个整数交换值

#include<stdio.h>
intmain()
{
intx,y,t;
printf("请输入二个整数: ");
scanf("%d%d",&x,&y);
printf("输入的二个数为:x=%d,y=%d ");
t=x;
x=y;
y=t;
printf("交换后的二个数为:x=%d,y=%d ");
return0;
}

㈥ c语言交换两个数的函数

好像没有return(x,y)这种写法吧,这样写应该可以
void swap(int *x,int *y)
{
int c;
c=*x;
*x=*y;
*y=c;
}

㈦ c语言函数的使用,定义一个交换函数 实现2个数字的交换。

void Swap(int&x,int&y)

{

int temp=0;

temp=x;

x=y;

y=temp;

}

int main()

{

int a=1;

int b=2;

Swap(a,b);

cout&lt;&lt;"a="&lt;&lt;a&lt;&lt;endl;

cout&lt;&lt;"b="&lt;&lt;b&lt;&lt;endl;

system("pause");

return 0;

}

运行结果:

(7)c语言两个整数的互换扩展阅读:

用指针交换:

void Swap(int*x,int*y)

{

int temp=0;

temp=*x;

*x=*y;

*y=temp;

}

int main()

{

int x=1;

int y=2;

Swap(&x,&y);

printf("x=%d,y=%d ",x,y);

system("pause");

return 0;

}

运行结果:

X=2;Y=1

㈧ C语言 编写程序,从键盘上输入两个不同的整数,让两个整数实现数据交换。怎么解答 求大神

#include <stdio.h>
int main()
{

int a, b;
printf("请输入两个不同的整数:");
scanf("%d %d", &a, &b);
if (a != b)
{
int tmp = a;
a = b;
b = tmp;
printf("交换后的数为%d %d\n", a, b);
}
else
{
printf("两个数相等,无需交换!\n");
}
return 0;
}

㈨ 从键盘输入两个整数,交换这两个整数,用c语言写,怎么写求答案啊,谢谢

用得最多的方法是:

#include<stdio.h>
intmain()
{int梁滚i,j,t;
scanf("%d%d",&i,&j);
printf("i=%dj=%d ",i,j);
t=i;i=j;j=t;橡核余//实现了变量值的交换
printf("i=%d氏轮j=%d ",i,j);
return0;
}

㈩ C语言.定义一个函数实现交换两个整数的功能,(用指针做函数参数)。

C语言.定义一个函数实现交换两个整数的功能,(用指针做函数参数)。 #include<stdio.h>
void swap(int *p,int *q)
{ int t;
t=*p; *p=*q; *q=t;
}
main()
{ int a=5,b=4,*p,*q;
p=&a; q=&b;
swap(p,q);
printf("a=%d b=%d",a,b);
return 0;
}
..
C语言 指针做函数参数 的优点
首先你要认闷迹识函数传参是怎么进行的
函数传参是复制形的,举个例子说:
void modify(int a)
{
a++;
}
void main()
{
int a=5;
modify(a);
printf("%d",a);
}
这个程序的答案还是5。为什么?
因为当调用陪备modify(a)时,在执行modify函数时,是另外开辟了一个内存空间,将main中a的值复制过来,modify函数中所有的操作都是相对于这个新开辟的内存空间而言的,对原来的a没有任何改变。
现在就来说说指针,如果用指针传参的话那就完全不一样了,指针(pointer),说白了即是指向变量内存地址。同样上面的例子:
void modify(int * a)
{
(*a)++;
}
void main()
{
int a=5;
modify(&a);
printf("%d",a);
}
这个答案当然是6
因为你传进去的是a的地址,所以在modify函数中的操作都是对a地址上的内容进行操作,即是操作a所以modify函数不用返回这个数,main中a的值也会改变。因为大家都是操作同一个内存空间,而上面不用指针,modify操作的是另一个新开辟的内存空间,只是这个内存空间初始值和a一样。
现在来说说传参,其实你“为什么函数参数是字符串的多用指针?” 那句我不是很明白,C中的字符串传参好像就指针一种形式(除非用结构体)。
何时用指针,何时用拷贝。当传的参数是一个结构体,而这个结构体比较大,这时最好用指针,因为如果用拷贝的话,单单花在拷贝的时间就要浪费很多,而如果这个函数经常被调用,那么这效率问题就出现了。
你在子函数中要对你的主调用函数中变量进行操作时也可以用指针做参数,这样子函数就可以不用return 如果不是用指针的话,就要再子函数的未尾加上一条return x;把这个数返回当返回值。
多看点书,多写点程序,刚开蚂乱并始学都会对指针比较迷茫。写多了,自然而然就懂了。
c语言中如果函数的参数不用指针而用整数能否实现值交换?
不能
解释:
1.就像是 你复印了一份文件, 对复印的文档进行修改 那么你的原文档上面能有改动吗?
C语言; 编写一个函数,用指针方法实现功能

int find(char* source/*源串*/, char* target/*子串*/)找到返回在源串中的位置,未找到返回-1,如果要改为找到返回1,把return i改为return 1;{ int i,j; int s_len=strlen(source); int t_len=strlen(target); if(t_len>s_len) { return -1; } for(i=0;i<=s_len-t_len;i++) { j=0; int flag=1; if(source[i]==target[j]) { int k,p=i; for(k=0;k<t_len;k++) { if(source[p]==target[j]) { p++; j++; continue; } else { flag=0; break; } } } else { continue; } if(flag==1) { return i; } } return -1;}

C语言,用指向函数指针的知识实现两个函数求和的功能
两个函数求和?是两个数求和的函数吧!
int add(int a, int b){ return a+ b;}
int main()
{
int sum;
int (*fn)(int , int );
fn = add;
sum = fn(3,5);
}
利用指针作函数参数,设计一函数实现将n个元素进行排序
将这n个元素存在数组里,然后用指针类型参数接收即作为形参,然后采用排序算法对这些元素进行排序即可
C语言,编写一函数,其功能是求一个长整数各位数字之和。要求使用指针函数实现
其功能是求一个长整数各位数字之和:
int function(long l){
int sum = 0;
String s = l+"";把长整数转成字符串
for(int i=0;i<s.length();i++){
sum +=Integer.ValueOf(s.charAt(i));
}
return sum;
}
c程序,使用指针作为函数参数,编写函数实现两个字符串连接

char *mycat(char *a,const char *b){ char *t; if(!a || !b) return NULL; t=a; while(*a) a++; while(*a++=*b++); return t;}

编一个函数sort,使10个整数按升序排列,在main函数中输入这10个数,并输出排好序的数,函数参数用指针实现
#include<stdio.h>
void sort(int *a,int n)
{
int i,j,temp;
for(j=0;j<n;j++)
for (i=0;i<n-j-1;i++)
if (a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
void main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i] );
printf("\n");
}
c语言编程:用指针变量作函数参数求三个数和

#include "stdafx.h"#include "process.h"double getsum(double *a, double *b, double *c);声明函数 参数为double类型的指针int main(int argc,char* argv[]){double *sum=new double;*sum = 0;double x = 1.33332;double y = 2.1;double z = 6.4;*sum=getsum(&x, &y, &z);用变量地址做参数调用函数printf("%g\n",*sum);delete sum;释放空间sum = NULL;system("pause");return 0;}double getsum(double *a, double *b, double *c){ return (*a +*b+ *c );}