标题:新手上路的我瑟瑟发抖
只看楼主
请输入密码
Rank: 2
等 级:论坛游民
威 望:5
帖 子:35
专家分:84
注 册:2020-11-19
得分:0 
Swap函数不就是交换的意思嘛,不然为啥给两个参数来用。

Bug易改,码风难移。
有事离开,无事灌水。
2020-12-29 08:20
请输入密码
Rank: 2
等 级:论坛游民
威 望:5
帖 子:35
专家分:84
注 册:2020-11-19
得分:5 
仅仅是交换两个整数而已。

程序代码:
#include<stdio.h>

void swap( int* ,int* );

int main( void )
{
    int a,b;
    
    scanf( "%d%d",&a,&b );
    
    swap( &a, &b );
    
    printf( "%-4d%-4d\n",a,b );
    
    return 0;
}

void swap( int* a, int* b )
{
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;
}

Bug易改,码风难移。
有事离开,无事灌水。
2020-12-29 08:27
星辰探
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-12-27
得分:0 
回复 9楼 do8do8do8
感谢大佬
2020-12-30 20:25
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:0 
回复 5楼 星辰探
你还没有回答我,有什么问题。那我来猜测一下你的疑问吧:你是看到循环条件 i < *p2 吧?

在程序中 p2 = &n,这是将数组长度的变量地址赋给了指针 *p2,之所以这么定义是因为题目所给定的函数 swap(int *p1,int *p2),形参是两个指针,而比较数组的大小,只需要一个首地址和一个数组长度就足够了,也就是说函数应该这么来定义:swap(int *p1,int n),即一个指针,一个整型数值就可以了。可是题目就是题目,我们做题,不能去更改题目。既然要求用两个指针,那就将长度变量定义为指针好了
2020-12-30 22:06
星辰探
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2020-12-27
得分:0 
回复 14楼 风过无痕1989
好的好的,谢谢大佬
2020-12-31 09:15
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用请输入密码在2020-12-29 08:27:41的发言:

仅仅是交换两个整数而已。


#include<stdio.h>

void swap( int* ,int* );

int main( void )
{
    int a,b;
   
    scanf( "%d%d",&a,&b );
   
    swap( &a, &b );
   
    printf( "%-4d%-4d\n",a,b );
   
    return 0;
}

void swap( int* a, int* b )
{
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;
}

交换就用第三个变量交换 不要自作聪明
而且你这个交换函数写错了

https://zh.
2020-12-31 09:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504412-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.338114 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved