大一的题目,请帮我看看有什么问题

求Sn=a+aa+…+aa…a(n个a)的值,其中a是一个数字,n表示a的位数,例如:2+22+222+2222+22222(此时n=5);
要求输入两个整数a和n。
输出Sn的值

#include <stdio.h>
int main()
{
int a,b,c,d=0,e=0,n;
scanf("%d %d",&a,&n);
for(b=0;b<n;b++)
{c=a*10^b;
d=d+c;
e=e+d;
}printf("%d\n",e);
return 0;
}
麻烦大佬帮看看有什么问题

b<=n 你少一个

c=a*10^b; 这个换成下面这种

#include <stdio.h>
int cf(int k);
int main()
{
int a,b=0,c=0,d=0,e=0,n;
scanf("%d %d",&a,&n);
for(b=0;b<n;b++)
{
c=acf(b);
d=d+c;
e=e+d;
}printf("%d\n",e);
return 0;
}
int cf(int k){
int q=1;
for(int i=0;i<k;i++){
q=10
q;
}
return q;
}

#include<stdio.h>
#include<math.h>
int dg(int t, int n)
{
    if (n > 1)
        return  t * pow(10, n - 1) + dg(t, n - 1);
    else
        return t;
}
int main()
{
    int n, t, s = 0, i;
    scanf("%d%d", &t, &n);
    for (i = 1; i <= n; i++)
    {
        if (i == n) { printf("%d", dg(t, i)); }
        else { printf("%d+", dg(t, i)); }
        s = s + dg(t, i);
    }
    printf("=%d", s);
    return 0;
}