用C语言编写一个程序求Sn=a+aa+aaa+aaaa+....

# include <stdio.h>
int main()
{
int sum,a,n,i,c;
c=a;
printf("Please input n and a\n");
scanf("%d,%d",&n,&a);
for(sum=0,i=0;i<n;i++)
{
sum=sum+a;
a=c+a*10;
}
printf("The answer is%d\n",sum);
return 0;
}
这个程序哪里错了。。为什么我输入2,2的时候跳出来的答案错得很离谱?

#include<stdio.h>
void main()
{
int x,n=1,sum=0;
float a,tn;
scanf("%f%d",&a,&x);//请注意我这里不是用逗号实现的
tn=a;
while(n<=x)
{
sum=sum+tn;
tn=tn*10+a;
n++;
}
printf("%d",sum);
}

 

请问还有问题吗

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-24
# include <stdio.h>
int main()
{
int sum,a,n,i,c;
c=a;//a没有初值,数值不定而赋给c
printf("Please input n and a\n");
scanf("%d,%d",&n,&a);
for(sum=0,i=0;i<n;i++)
{
sum=sum+a;
a=c+a*10;//导致这里出错
}
printf("The answer is%d\n",sum);
return 0;
}

==================================================================

# include <stdio.h>
# include <math.h>

int main()
{
int a,n,i;
double sum;
printf("Please input n and a:");
scanf("%d,%d",&n,&a);
for(i=n-1,sum=0;i>=0;i--)
sum+=(pow(a,(n-i)));
/*
for(i=n-1,sum=n*a;i>0;i--)
sum+=(n-i)*a*(pow(10,i));
*/
printf("The answer is %10.0lf\n\n",sum);
}

追问

额……为什么我不能同时采纳2个的……谢谢哈

本回答被网友采纳
第2个回答  2013-12-01
//2个地方有问题
#include<stdio.h>
int main()
{
int sum,a,n,i; 
printf("Please input n and a\n");
scanf("%d,%d",&n,&a);
for(sum=0,i=0;i<n;i++)
{
sum=sum+a;
a+=a*10; //第一个地方,应该是a=a+a*10,你写成a=c+a*10就不对了
}
printf("The answer is%d\n",sum);
return 0;
}
//第二个地方是 你输入的时候输入法是不是打开了?我打开就报错,关了就是24
//一般都不用scanf("%d,%d",&n,&a);的,这样要自己输入, 就要注意中英文了

第3个回答  2013-12-01
c = a;这句放在scanf()之后本回答被提问者采纳