求帮忙告诉我下面的程序哪儿写错了(初学者)

求S=a+aa+aaa+aaaa……,(一共n项),a是1到9的一个数。 请问我下面的程序哪儿错了吗? #include int main() { int i,a,n,sn=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++); sn=sn+an(a,i); printf("%d",sn); return 0; } int an(int k,int n) { int s; if(n=1) s=k; else s=k*10^(n-1)+an(k,n-1); return an; }

#include <math.h>
int an(int k, int n)
{
	int s;
	if (n == 1)
		s = k;
	else 
		s = k * pow(10.0,n-1.0) + an(k, n - 1);//10 ^ (n - 1)
	return s;
}


int main() 
{ 
	int i,a,n,sn=0; 
	scanf_s("%d%d",&a,&n); 
	for(i=1;i<=n;i++)
	sn=sn+an(a,i); 
	printf("%d",sn);
	return 0; 
} 

 

错误比较多啊,首先if判断中if(n=1)要改为if(n==1),另外return an肯定也不对,return s吧

#include "stdio.h"
#include "math.h"
void main()
{
    /*
    	a+aa+aaa+aaaa
    */
    int a,n,sum=0,i=0,j,pos;
    printf("请输入一位的数字和最大的位数");
    scanf("%d,%d",&a,&n);
    for(i=0;i<n;i++)
    {
    	pos=0;
    	for(j=0;j<=i;j++)
    	{
    		pos+=a*pow(10,j);
    	}
   		printf("%d+",pos);
    	sum+=pos;
    }
   	printf("=%d",sum);
    
}

 

#include <stdio.h>

#include <math.h>
int main()
{

    int a = 0;
    int n = 0;
    long ds = 10;
    long sum = 0;
    printf("请输入a和n的值:");
    scanf("%d,%d",&a,&n);
    //sum= a + aa + aaa + ...
    //sum = a + a+a*10 + a+a*10+a*100
    //sum = n*a + (n-1)*a*10 + (n-2)*100 + ..

    for(int i = 0; i < n; i++)
    {
        long dd = (n-i) * a * pow(10.0,(long)i);
        sum += dd;
    }
    printf("结果=%d\n",sum);

  
    getchar();
    getchar();
    
    return 0;
}

这个一个for循环就搞定了。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y