C语言编写函数fun,下列空

函数功能返回1+12+123+1234+12345等,共n(≤9)项相加的值

#include



int main()
{
   int n;
    do
{   printf("请输入n(1~9):");
     scanf("%d",&n);
} while(n<1||n>9);
printf("sum=%d\n",fun(n));
return 0;
}

int fun(int n)
{
    int item = 0,sum = 0;
    for(int i=1;i<=n;i++)
    {
        item = item * 10 + i;
        sum += item;
    }
    return sum;
}

意思是收入一个n的数字,可以打印输出1+12+123..+123..n这样的和吗?不知道是不是这样理解的。
针对次进行函数修改如下所示,以下程序已经编译测试通过的,请验证。

#include<stdio.h>
 
long long fun(int n);
int main(void)
{
   int n;
   printf("请输入n(1~9):");
   scanf("%d",&n);
   if(n<1||n>9)
   {
    printf("input n is error!\n");
    return 1;
   }
   printf("sum=%lld\n",fun(n));
   return 0;
}

long long fun(int n)
{
  long long sum=0;
  long long value;
  int i,j;
  for(i=1;i<=n;i++)
  {
    value=0;
    for(j=0;j<i;j++)
    {
      value=value*10;
      value+=j+1;
    }
    printf("value=%lld\n",value);
    sum+=(value);
    printf("sum11=%lld\n",sum);
  }
  return sum;
}

#include <stdio.h>

int fun(int n) {
    if (n == 1) {
        return 1;
    } else {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            int num = 0;
            for (int j = 1; j <= i; j++) {
                num = num * 10 + j;
            }
            sum += num;
        }
        return sum + fun(n - 1);
    }
}

int main() {
    int n;
    do {
        printf("请输入n(1~9):");
        scanf("%d", &n);
    } while (n < 1 || n > 9);
    printf("sum=%d\n", fun(n));
    return 0;
}