十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联主要从事成都网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务南召,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
void swap(int *p, int *q);//用传地址的方法交换
void main()
{
int i, j;
scanf("%d%d", i, j);//从键盘输入两个交换的数
swap(i, j);//传入i,j的地址
printf("i = %d, j = %d\n", i, j);//输出交换后的两个值
}
void swap(int *p, int *q)
{
int temp;//定义临时变量 存放中间值
temp = *p;
*p = *q;
*q = temp;
}
注意:不能直接写void swap(int i, int j);
因为那只是临时变量,函数调用完后,便释放空间,两个值并没有交换。
c语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参数也要最循这一规则。调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。
#includecstdio
char s1[100000],s2[100000];
int main()
{
gets(s1),gets(s2);
puts(s2),puts(s1);
return 0;
}
要下班了,你照着我这个程序改一下吧。
/*22_4:将两个矩阵相加*/
#include stdio.h
void add(int x[][4],int y[4][4]) /*不需要返回值,a数组元素已被改变*/
{
int i,j; /*两层循环变量*/
for(i=0;i4;i++)
for(j=0;j4;j++)
x[i][j]+=y[i][j];
return;
}
main()
{
int i,j; /*两层循环变量*/
int a[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{1,1,1,1},
{1,1,1,1}
};
int b[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{3,3,3,3},
{3,3,3,3}
};
add(a,b); /*调用函数时如此简单*/
/*输出相加后的矩阵*/
printf("两矩阵相加得:\n");
for(i=0;i4;i++)
{
for(j=0;j4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
这个是我在跟公司师傅学C语言写的一个
C语言中swap函数是自定义的函数,C标准库里没有swap函数。swap函数是用来交换的函数,经常在C语言中排序中会用到。
代码示例:
#includestdio.h
void swap(int *a, int *b){
int t;
t = *a;
*a = *b;
*b = t;
}
int main()
{
int a=23,b = 43;
printf("输入的两个要交换的数为:%d,%d\n",a,b);
swap(a,b);
printf("交换后的数为:%d,%d\n",a,b);
return 0;
}
程序运行:
扩展资料
C语言中使用swap()函数,要注意的是,想要交换a,b的值,其实就是相当于要在函数中改变变量的值,要做到这一点,就需要向形式参数传递实际参数的地址了,因为这样把变量的地址复制到函数中的变量里,它们指向的是内存中的同一个地方,在函数中改变这个地方的值,那么外部的变量的值也就改变了。
参考资料:百度百科-C语言