C语言程序哪里出错了~~谢谢帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/07 08:16:55
从键盘输入a n两数,求和
Sn=a+aa+aaa+……+a……a(n个a)
#include <stdio.h>
void main()
{
int n,a,i,j,Sn;
printf("请输入n和a");
scanf("%d,%d",&n,&a);
for(i=1,j=0,Sn=0;i<=n;i++)
{
j=i*a;
Sn=Sn+j;
}
printf("%d",Sn);
}

应该是逻辑错误(j=i*a),正确的应该是

for(i=1,j=0,Sn=0;i<=n;i++)
{
j=j*10;
a=a+a*j;
sn=sn+a;
}

另一种方法是
for(i=n,j=1,Sn=0,p=0;i>=1;i--)
{
p=a*i*j;
j=j*10;
sn=sn+p;
}

你做的没错,只是格式不太好,写成这样好些:
#include <stdio.h>
void main()
{

int n,a,i,j,Sn;
j=0;
Sn=0;

printf("请输入整数n:");
scanf("%d",&n);

printf("请输入整数a:");
scanf("%d",&a);

for(i=1;i<=n;i++)
{
j=i*a;
Sn=Sn+j;
}

printf("%d\n",Sn);

}

i*a什么意思呢?
假如i=5
就是五倍的a
不是aaaaa

j=j*10;
a=a+a*i;
sn=sn+a;
i++;

#include <stdio.h>
void main()
{
int n,a,i,j,Sn;
printf("请输入n和a");
scanf("%d,%d",&n,&a);
for(i=1,j=0,Sn=0;i<=n;i++)
{

j=j*10+a;//aN=(aN-1)*10+a
<