求大佬教解题,萌新一个

图片说明
求教怎么写

#include<stdio.h>

int F[100]; //保存遍历到的数字(即问题的解)
int n; //待拆分的数

//采用DFS的设计思路
void fun(int index,int x,int r){
//index为当前遍历到的位置索引
//x为当前可取的最小值
//r为待拆分的数的剩余值(减去了已经找到的数)
    int i;
    if(r==0&&index>1){ //剩余值为0,并且遍历的数不少于2个
        printf("%d = ",n);
        for(i=0;i<index-1;i++){
            printf("%d + ",F[i]);
        }
        printf("%d\n",F[index-1]);
        return;
    }
    for(i=x;i<=r;i++){ //遍历区间【x,r】
        F[index]=i;
        fun(index+1,i,r-i);
    }
}

int main(){
    printf("请输入一个数字:");
    scanf("%d",&n);
    fun(0,1,n);
    return 0;
}