能运行结果一直错 忧伤
验算过好多遍,感觉没什么问题,但结果不正确希望就在这个基础上改改,感谢!
求Sn=a+aa+aaa+...+aaa...a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。
例:2+22+222+2222(此时n=4)
#include <stdio.h>
#include <math.h>
int main()
{
int a,n,S=0;
int i;
printf("输入数字a的值(0~9的一个数):");
scanf("%d",&a);
printf("输入想加到的位数n的值(整数):");
scanf("%d",&n);
for(i=0; i<=n-1; i++)
{
S+=a*pow(10,i)*(n-i); //i是10的指数,(n-i)是几个相同的数
}
printf("\n%d",S);
return 0;
}
大概是这样
4 3 2 1 (n-i)
2 2 2*10^0
22 2+20 2*10^0+2*10^1
222 2+20+200 2*10^0+2*10^1+2*10^2
2222 2+20+200+2000 ...+ ... + ... + ...
int a,n,S,s;
S=s=0;
printf("输入数字a的值(0~9的一个数):");
scanf("%d",&a);
printf("输入想加到的位数n的值(整数):");
scanf("%d",&n);
for(int j=0;j<n;j++){
for(int i=0; i<=j; i++)
{
s+=a*(int)pow(10,i); //i是10的指数
}
S+=s;
s=0;
}
printf("\n%d",S);
改成这样子 本帖最后由 龙龙龙龙龙龙 于 2020-2-15 10:21 编辑
4goodworld 发表于 2020-2-15 00:24
改成这样子
害 我懂了你的拿codeblocks 试了也是结果错,然后灵光一现换了个编译器,就对了,我那个也对了
但还是感谢,又学到了,可是为什么会这样? #include <stdio.h>
#include <math.h>
int main()
{
int a,n,S=0,j;
int i;
printf("输入数字a的值(0~9的一个数):");
scanf("%d",&a);
printf("输入想加到的位数n的值(整数):");
scanf("%d",&n);
for(i=0; i<=n-1; i++)
{
for(j=0;j<=i;j++)
S+=a*pow(10,j); //i是10的指数,(n-i)是几个相同的数
}
printf("%d\n",S);
return 0;
}
莫谦 发表于 2020-2-15 10:23
#include
#include
int main()
了解 感谢{:10_297:}
页:
[1]