运算符填空(不考虑优先级)

(C语言)运算符填空
【问题描述】输入 5 个数与一个结果,设计程序在 5 个数中填入运算符( +、 -、 *、 /)使其与结果相等,或回答做不到。5个数顺序固定,运算顺序固定为从左向右,不考虑运算符优先性。除法按整数除法来运算,保证有解的输入都是有唯一解的。
【输入形式】5个整数a, b, c, d, e和一个结果整数result。0<a,b,c,d,e<50。
【输出形式】依次输出4个运算符,以空格隔开;没有解时输出"No solution"。
【样例输入1】

1 1 1 1 1 5
【样例输出1】

      • +

【样例输入2】

2 3 4 5 6 -100
【样例输出2】

No solution

#include <stdio.h>
int fun(int a,char op,int b)
{
    switch(op)
    {
    case '+':
        return a+b;
    case '-':
        return a-b;
    case '*':
        return a*b;
    default:
        {
            if(b!=0)
                return a/b;
            return 999999999;
        }
    }
    return 0;
}

int main()
{
    char op[4] = {'+','-','*','/'};
    int a,b,c,d,e,result,num=0;
    scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
    scanf("%d",&result);
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            for(int k=0;k<4;k++)
                for(int m=0;m<4;m++)
                {
                    if(fun(fun(fun(fun(a,op[i],b),op[j],c),op[k],d),op[m],e) == result)
                    {
                        printf("%c %c %c %c\n",op[i],op[j],op[k],op[m]);
                        num++;
                    }
                }
    if(num==0)
        printf("No solution");
      return 0;
}