c语言 请问如何删去最后的那个+号

 #include<stdio.h>
 int main()
 {
     int i,j,m,sum;
     for(i=1;i<1000;i++)
         {
             sum=0;
             for(j=1;j<i;j++)
             {
                 if(i%j==0)
                 {
                     sum+=j;
                 }
             }
             if(sum==i)
            {
             printf("%d=",i);
            
            for(m=1;m<i;m++)
             {
             if(i%m==0)
             {
             printf("%d+",m);}
             }
             printf("\n"); }
         }
 }

 

        int i, j, m, sum;
        for (i = 1; i < 1000; i++)
        {
            sum = 0;
            for (j = 1; j < i; j++)
            {
                if (i % j == 0)
                {
                    sum += j;
                }
            }
            if (sum == i)
            {
                printf("%d=", i);

                bool have = false;
                for (m = 1; m < i; m++)
                {
                    if (i % m == 0)
                    {
                        if(!have)
                            have = true;
                        else
                            printf("+", m);
                        printf("%d", m);
                    }
                }
                printf("\n");
            }
        }

加个标志位判断下就好

写一个数组存放结果,也就是printf("%d+",m)这句变成将m存到数组里面去,然后遍历数组输出,

加个判断,如果输出的是数组的最后一个,那就不要输出printf("%d+",x);,而是printf("%d",x);