|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <math.h>
main()
{
int i,j,m;
long sum=0;
printf("请输入a值及项数(s=a+aa+aaa+aaaa+aa...a):");
scanf("%d,%d",&i,&j);
getchar();
for(m=0;m<j;m++)
{
sum+=i*pow(10,m); //为什么这个加号没有起作用???
}
printf("%ld",sum);
}
输入2,5之后,显示出的sum为最后一项22222,而不是2+22+222+2222+22222的值
我不知道你为什么说没有起作用,我们先来梳理一下运行过程
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int i,j,m;
- long sum=0;
- printf("请输入a值及项数(s=a+aa+aaa+aaaa+aa...a):");
- scanf("%d,%d",&i,&j);
- //getchar();
- printf ("i = %d j = %d\n",i,j);
- for(m=0;m<j;m++)
- {
- sum += i * pow(10,m);
- //运行结果:
- //1. sum = 0 + 2 * 1 sum == 2
- //2. sum = 2 + 2 * 10 sum == 22
- //3. sum = 22 + 2 * 100 sum == 222
- //4. sum = 222 + 2 * 1000 sum == 2222
- //5. sum = 2222 + 2 * 10000 sum == 22222
- printf ("第%d次的时候sum = %d\n",m+1,sum);
- }
- printf("%ld",sum);
- }
复制代码
按照我的理解~你要让他们相加~ 那你还需要一个变量来存放~ 或许你可以这样写~
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int i,j,m;
- long sum=0;
- long sum_1 = 0;
- printf("请输入a值及项数(s=a+aa+aaa+aaaa+aa...a):");
- scanf("%d,%d",&i,&j);
- //getchar();
- printf ("i = %d j = %d\n",i,j);
- for(m=0;m<j;m++)
- {
- sum += i * pow(10,m);
- sum_1 = sum_1 + sum;
- }
- printf("%ld",sum_1);
- }
复制代码
|
|