为了账号安全,请及时绑定邮箱和手机立即绑定

谁能教教我!

编写函数实现:(1)声明3个整型变量var1, var2, var3,变量的值由键盘输入;(2)通过三个指针变量ptr_var1、ptr_var2和ptr_var3实现3个变量的顺序交换,即var1的值交换给var2,var2的值交换给var3,var3的值交换给var1;(3)必须输出变量var1、var2和var3的原始输入值及变量的地址,并输出交换完成后的新值。

正在回答

3 回答

回答了,但是好像在审核

0 回复 有任何疑惑可以回复我~

这一题,首先考察的是指针的使用,然后结合了前面所讲的两个值的交换知识(值传递和地址传递的区别),三个值的交换就是在两个值交换基础上,多交换了两次,算法思想上没有变化。

0 回复 有任何疑惑可以回复我~
#include <stdio.h>
void swap(int *p1,int *p2,int *p3)
{
    int temp;
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
    
    temp = *p2;
    *p2 = *p3;
    *p3 = temp;
    
    temp = *p3;
    *p3 = *p1;
    *p1 = temp;
}
int main()
{
    int var1,var2,var3;
    int *ptr_var1,*ptr_var2,*ptr_var3;
    scanf("%d%d%d",&var1,&var2,&var3);
    ptr_var1 = &var1;
    ptr_var2 = &var2;
    ptr_var3 = &var3;
    printf("Original value:\n");
    printf(" var1 = %d\n var2 = %d\n var3 = %d\n",var1,var2,var3);
    printf("\n");
    printf("Address before swap:\n");
    printf(" var1 = %x\n var2 = %x\n var3 = %x\n",&var1,&var2,&var3);
    printf("\n");
    swap(ptr_var1,ptr_var2,ptr_var3);
    printf("Value after swap:\n");
	printf(" var1 = %d\n var2 = %d\n var3 = %d",var1,var2,var3);
    return 0;
}


0 回复 有任何疑惑可以回复我~
#1

因为红 提问者

能说说这一题的思想吗?
2017-10-24 回复 有任何疑惑可以回复我~
#2

慕姐5118331 回复 因为红 提问者

题意很明了啊
2017-10-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

谁能教教我!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信