输入一个n位数,范围在1~99999999,求这个n位数每一位上的数之和

例如,输入12,输出3;输入234510,则输出15;输入234,输出9;输入345,输出12.用c语言该如何写代码。

#include <stdio.h>
int main()
{
long int x,sum=0,n;
printf("请输入一个自然数:\n");
scanf("%d",&x);
n=x;
while(n)
{
sum+=n%10;
n/=10;
}
printf("%d的各位数字和为%d\n",x,sum);
}


#include <stdio.h>
int main() {
 int d,L,i,t;
 char s[20];
 scanf("%d",&d);
 L=sprintf(s,"%d",d);
 t=0;
 for (i=0;i<L;i++) t+=s[i]-'0';
 printf("%d",t);
 return 0;
}

#include <iostream>
using namespace std;

int func(int n){
    int res = 0;
    while(n>0){
        res += n%10;
        n /= 10;
    }
    return res;
}

int main(){
    cout << func(12) << endl;
    cout << func(234510) << endl;
    cout << func(234) << endl;
    cout << func(345) << endl;
    return 0;
}