C语言的一道题《求a+aa+aaa+aa…a(n个a) 之和输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。

输入输出样例1】(下划线部分表示输入)
Input a, n: 8
5

s=98760
【输入输出样例2】(下划线部分表示输入)
Input a, n: 2 9
s=246913578

我写的代码是这样的 求教哪里出错了啊
#include<stdio.h>
#include<math.h>
int main(void){

int a,n,i,sum,z;
printf("Input a,n: ");
scanf("%d%d",&a,&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+pow(10,i-1)*a;
z=z+sum;
}
printf("s=%d",z);
return 0;

}

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

int a,n,i,sum,z=0,aa=0;
printf("Input a,n: ");
scanf("%d,%d",&a,&n);
sum=0;
for(i=1;i<=n;i++){
sum=10*sum+a; //这里循环节你错了
z=z+sum;
}
printf("s=%d",z);
return 0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-20
你sum知道赋初值,那么你z怎么就没赋初值呢?z=z+sum;z没初值所以是负数。
第2个回答  2013-04-20
说下思路:这种题在百度上代码大把大把的!!!

其实就是前者*10+a,比如aa=a*10+a,然后用循环实现就是了!!!
相似回答