c语言 输入a和b两个整数,按先小后大的顺序输出a和b(交换指针)

如题所述

1、新建一个工程和.c文件 ,输入头文件和主函数。

2、然后开始定义变量类型。

3、输入a和b两个整数。

4、对a和b两个不同的整数进行赋值。

5、然后通过if语句实现值大小的比较。

6、输出最后的结果。

7、编译、运行,可以看见按先小后大的顺序输出a和b。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-05

#include<iostream>

using namespace std;

int main()

{

int *p1,*p2,*p;   //p也是指针变量。

int a,b;

cout<<"请输入两个整数:"<<endl;

cin>>a>>b;

p1=&a;

p2=&b; 

if(a<b) 

{

p=p1;//将p1和p2的指向互换。

p1=p2;  

p2=p;

}

cout<<"a="<<a<<"  "

<<"b="<<b

<<endl;

cout<<"max="<<*p1<<"    "

<<"min="<<*p2

<<endl;

return 0;

}

运行效果:

扩展资料:

1、定义指针变量的一般形式如下:

类型名*指针变量名1,*指针变量名2,...*指针变量名n;

2、空指针

空指针是一个特殊的指针,它的值是0,C语言中用符号常量NULL(在stdio.h中定义)表示这个空值,并保证这个值不会是任何变量的地址。空指针对任何指针类型赋值都是合法的。一个指针变量具有空指针值表示当前它没有指向任何有意义的东西。

3、void指针

(void*)类型的指针叫通用指针,可以指向任何的变量,C语言允许直接把任何变量的地址作为指针赋给通用指针。但是需要注意void*不能指向由const修饰的变量。

例如:const int test;void*ptv;ptv=&test;第三句是非法的,只有将ptv声明为const void*ptv;,上述第三句ptv=&test才是合法的。

当需要使用通用指针所指的数据参加运算时,需要写出类型强制转换。如通用指针ptv所指空间的数据是整型数据,p是整型指针,用此式转换:p=(int*)ptv;

本回答被网友采纳
第2个回答  2019-07-05

#include <stdio.h>

int main()

{

int *p1,*p2,*p;

scanf("%d %d",&a,&b);

int a=2,b=5;

p1=&a;

p2=&b;

if(a<b) 

{

p=p1;   //将p1和p2的指向互换。

p1=p2;  

p2=p;

}

printf("%d  %d\n",*p2,*p1);  

return 0;

}

 扩展资料:

两个地方要注意: 

1、在程序声明变量的时候的*,只是表明“它是一个无符号整数,这个整数指向某个内存地址,一次访问sizeof(type)长度”。这点不要和(*)操作符混淆;

2、在C++程序声明变量的时候的&,只是表明“它是一个引用,这个引用声明时不开辟新空间,它在内存分配表加入新的一行,该行内存地址等于和调用时传入的对应参数内存地址”。

参考资料:

百度百科-指针

本回答被网友采纳
第3个回答  2015-12-21
void swap(int *p, int *q)
{
    int t;
    
    if(*p>*q)
    {
        t=*p;
        *p=*q;
        *q=t;
    }
}

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

第4个回答  2015-12-21
#include<stdio.h>
void main()
{int a,b;
scanf("%d,%d",&a,&b);
if(a>=b)

print("%d,%d",b,a);
else
print("%d,%d",a,b);
}
相似回答