int max(int a, int b)
{
return a>b?a:b
}
int min(int a, int b)
{
return a<b?a:b
}
int main()
{
int a,b,i
int (*p[2])(int,int) = {max,min}
scanf("%d%d",&a,&b)
scanf("%d",&i)
if(i == 1 || i == 2)
printf("%d\n", p[i-1](a,b))
return 0
}
#include<stdio.h>#define N 5
#define M 5
void f(int a[][M],int n,int m,int *s) { int i,j
for ( i=0i<ni++,s++ ) {
*s=a[i][0] for ( j=1j<mj++ ) if ( *s<a[i][j] ) *s=a[i][j]
}
}
void main() { int a[N][M],s[N],i,j
for ( i=0i<Ni++ ) for ( j=0j<Mj++ ) scanf("%d",&a[i][j])
f(a,N,M,s)
for ( i=0i<Ni++ ) printf("%d\n",s[i])
}
#include&ltiostream&gt
usingnamespacestd
intmain()
{
inta,b,c
int*p1,*p2,*p3
inttemp
cout&lt&lt"输入3个整数:"&lt&ltendl
cin&gt&gta&gt&gtb&gt&gtc
p1=&a
p2=&b
p3=&c
if(*p1&gt*p2)
{
temp=*p1
*p1=*p2
*p2=temp
}
if(*p1&gt*p3)
{
temp=*p1
*p1=*p3
*p3=temp
}
if(*p2&gt*p3)
{
temp=*p2
*p2=*p3
*p3=temp
}
cout&lt&lt'\n'
&lt&lt"按由小到大顺序输出:"&lt&lt'\n'
&lt&lta&lt&lt'\n'
&lt&ltb&lt&lt'\n'
&lt&ltc&lt&lt'\n'
return0
}
写法二、(交换指针指向的地址):
#include&ltiostream&gt
usingnamespacestd
intmain()
{
inta,b,c
int*p1,*p2,*p3
int*temp
cout&lt&lt"输入3个整数:"&lt&ltendl
cin&gt&gta&gt&gtb&gt&gtc
p1=&a
p2=&b
p3=&c
if(*p1&gt*p2)
{
temp=p1
p1=p2
p2=temp
}
if(*p1&gt*p3)
{
temp=p1
p1=p3
p3=temp
}
if(*p2&gt*p3)
{
temp=p2
p2=p3
p3=temp
}
cout&lt&lt'\n'
&lt&lt"按由小到大顺序输出:"&lt&lt'\n'
&lt&lt*p1&lt&lt'\n'
&lt&lt*p2&lt&lt'\n'
&lt&lt*p3&lt&lt'\n'
return0
}
写法三、用函数指针
#include&ltstdio.h&gt
#include&ltstdlib.h&gt
intmain()
{
inta,b,c,*p1,*p2,*p3
printf("请输入三个整数:")
scanf("%d%d%d",&a,&b,&c)
p1=&a
p2=&b
p3=&c
exchange(p1,p2,p3)
printf("%d%d%d",a,b,c)
return0
}
voidswap(int*x,int*y)
{
inttemp
if(*x&gt*y)
{
temp=*x
*x=*y
*y=temp
}
}
voidexchange(p1,p2,p3)
{
swap(p1,p2)
swap(p1,p3)
swap(p2,p3)
}