编辑代码

#include <stdio.h>
int sum(int, int);
int minus(int, int);
int multiply(int, int);
int divide(int, int);//商只能为整数,不太合理
int compute(int, int, int (*fun)(int, int));
int main ()
{
    int x, y, result;
    printf("请输入两个整数:\n");
    scanf("%d%d",&x, &y);
    while(y==0)
    {
        printf("第二个整数不能为0,请重新输入!\n");
        scanf("%d",&y);
    }
    printf("%d与%d的和为:%d\n",x, y, result = compute(x, y, sum));
    printf("%d与%d的差为:%d\n",x, y, result =compute(x, y, minus));
    printf("%d与%d的积为:%d\n",x, y, result =compute(x, y, multiply));
    printf("%d与%d的商为:%d\n",x, y, result = compute(x, y, divide));

	return 0;
}

int sum(int a, int b)
{
    return a + b;
}

int minus(int a, int b)
{
    return a - b;
}

int multiply(int a, int b)
{
    return a * b;
}

int divide(int a, int b)
{
    if(b == 0)
    {
        printf("除数为0,无法计算!\n");
        return 0;
    }
    else
        return a / b;
}

int compute(int a, int b, int (*fun)(int, int))
{
    return fun(a,b);
}