交换两个整形变量

Posted 赵贺炎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交换两个整形变量相关的知识,希望对你有一定的参考价值。

总结:本题难度不大,但是总有些小的错误,打代码不熟练缺练,平时一定多加练习

 

 

二、 void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?

程序有错误,*m指的是m的内容,不可任意交换

三、void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?

程序没有错误,因为交换的是两个变量的内容,地址没有进行交换,所以无法 实现交换

四、构建comp函数,实现两个整数比较,比较大的值通过返回值返回给main。要求comp的参数和返回值都是指针类型数据。

#include<stdio.h>
#include<conio.h>
int comp(int*a,int*b)
{
     if(*a>*b)
        return *a;
    else
        return *b;
}
int main()
{
    int a,b,* p1,* p2;
    scanf("%d%d",&a,&b);//输入啊,b 
    p1 = &a;//指针P1指向a的地址 
    p2 = &b;//指向b的地址 
    printf("max=%d\\n",comp(p1,p2));//输出方法返回最大值 
    getch(); 
    return 0;
}
#include<stdio.h>
#include<conio.h>
int comp(int*a,int*b)
{
     if(*a>*b)
        return *a;
    else
        return *b;
}
int main()
{
    int a,b,* p1,* p2;
    scanf("%d%d",&a,&b);//输入啊,b 
    p1 = &a;//指针P1指向a的地址 
    p2 = &b;//指向b的地址 
    printf("max=%d\\n",comp(p1,p2));//输出方法返回最大值 
    getch(); 
    return 0;
}

总结:一开始敲出了两个主函数。。。。。后来发现了错误,还是通过室友指正,对C的练习有待提高

以上是关于交换两个整形变量的主要内容,如果未能解决你的问题,请参考以下文章

不借助任何中间变量将两个整形变量的值交换

交换两个整形变量的数值

交换两个整形变量的数值

交换两个整形变量的数值

第二次作业——交换两个整形变量的数值

c#写一个方法交换两个整数变量的值