#include <stdio.h>
#include <string.h>
#define M 5
void exc(int *a,int *(*p)(int *), int *(*q)(int *))
{
int c, *m, *n;
m = p(a);
n = q(a);
c = *m;
*m = *n;
*n = c;
}
int *max(int *a)
{
int *t;
t = a;
for (int i = 1; i < M; ++i)
{
if (*t < *(t + 1))
{
t = t + 1;
}
}
printf("max = %d\n", *t);
return t;
}
int *min(int *a)
{
int *t;
t = a;
for (int i = 1; i < M; ++i)
{
if (*t > *(t + i))
{
t += i;
}
}
printf("min = %d\n", *t);
return t;
}
int main(int argc, char const *argv[])
{
int a[M];
for (int i = 0; i < M; ++i)
{
scanf("%d", &a[i]);
}
int *(*p)(int *), *(*q)(int *);
p = min;
q = max;
exc(a, p, q);
for (int i = 0; i < M; ++i)
{
printf("%d ", a[i]);
}
return 0;
}
函数指针练习
最新推荐文章于 2021-06-22 21:08:01 发布
6742

被折叠的 条评论
为什么被折叠?



