编程兄弟数问题,数组储存不知道哪里出错了

希望好心人能帮忙解决!

img

int s,m,n,i,a,b,k[100]={0},f,l[100]={0},j[100]={0};    scanf("%d %d",&n,&m);    a=n;    b=m;    f=1;         for(;b>=a;b--)     {     for(;a<=b;a++)      {          s=a+b;        if((a*b)%s==0)         {        k[f]=s;l[f]=a;j[f]=b;f++;           printf("%d ",k [f]);        }      }               }     m=0;     if(f==1) printf("No Solution");     else      {     for(int i=1;i<=f;i++)       {        for(int s=2;s<f;s++)        {        if(k[i]==k[s])    {printf("%d,,\n",l[i]);m++;break;}        }            }                                                        for(int i=1;i<=f;i++)    {            if(m>=1) break;        else         {                for(int s=2;s<f;s++)    {         if(k[s]<k[i]) m=k[s];         if(k[s]<m)    m=k[s];         while(s==f) {printf("%d",m);break;}    }        }        break;       }        }    return 0;    

如下,如有帮助,请帮忙采纳一下,谢谢。

#include <stdio.h>
int main()
{
    int m,n;
    int sum = m+m;
    int a,b;
    int amin = m,bmin=m;
    int tmpa,tmpb;
    int flag = 0;
    for (a = n;a<m;a++)
    {
        for(b=n;b<m;b++)
        {
            if((a*b)%(a+b)==0 )
            {
                flag = 1;
                if(a+b < sum)
                {
                    amin = a<b?a:b;
                    bmin = a>b?a:b;
                    
                }else if(a+b == sum)
                {
                    tmpa = a<b?a:b;
                    tmpb = a>b?a:b;
                    if(tmpa < amin)
                    {
                        amin = tmpa;
                        bmin = tmpb;
                    }
                }
            }
        }
    }
    if(flag)
        printf("%d %d\n",amin,bmin);
    else
        printf("No Solution\n");
    return 0;
}