目的:输入两个整数,然后让用户选择1or2,选择1时调用max函数 输出较大值,选择2时输出较小值。请问图中的代码出了什么问题,为什么没有得到想要的结果。
题主的意思是在一个函数中返回?
#include <stdio.h>
int maxOrMin(const int *x, const int *y, int n);
int main(void) {
int a, b, n;
puts("请输入两个整数: ");
scanf("%d %d", &a, &b);
puts("请选择1或者2: ");
scanf("%d", &n);
if (n == 1)
printf("max = %d\n", maxOrMin(&a, &b, n));
else
printf("mix = %d\n", maxOrMin(&a, &b, n));
return 0;
}
int maxOrMin(const int *x, const int *y, int n) {
int temp;
if (n == 1)
return temp = (*x < *y) ? *y : *x;
else
return temp = (*x < *y) ? *x : *y;
}
这个是基于题主的改进而成的
#include <stdio.h>
int max(int x, int y);
int min(int x, int y);
int main(void) {
int a, b, n;
puts("请输入两个整数: ");
scanf("%d %d", &a, &b);
puts("请选择1或者2: ");
scanf("%d", &n);
if (n == 1)
printf("max = %d\n", max(a, b));
else
printf("mix = %d\n", min(a, b));
return 0;
}
int max(int x, int y){
int max_num;
if (x < y)
max_num = y;
else
max_num = x;
return max_num;
}
int min(int x, int y) {
int min_num;
if (x < y)
min_num = x;
else
min_num = y;
return min_num;
}
直接调用函数不就行了,为啥还要用函数指针。
再说,p还没有赋值就在12行调用,肯定有问题了。