急求:请问谁能帮我看看这个C程序的问题啊?

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:52:55
老师出的题目是这样的:随便输入一个数,譬如输入的是2,那么求和:sum=2+22+222+2222+22222
又譬如输入的是7,那么求和:sum=7+77+777+7777+77777
我目前学过了的C命令有:循环、选择等。
我就编了这样一个C程序,能运行,但结果是错的。请请找找问题??
#include "math.h"
#include "stdio.h"
main()
{
int i,a,j=0,sum=0;
scanf("%d",&i);
do
{a=pow(10,j);
i=i*a+i;
sum=sum+i;
j++;
}
while(j<=5);
printf("sum=%d",sum);
}
没有一个是正确答案啊!!

POW函数实现的是乘方运算,两个参数分别是底数和幂。
#include <math.h>
#include <stdio.h>
void main()
{
int i,a,j=0,sum=0,k=0;
scanf("%d",&i);
do
{
a=(int)pow(10,j);

k=i*a+k;
sum=sum+k;
j++;
} while(j<5);
printf("sum=%d",sum);

}

我的不对吗?我运行过了阿

pow是乘方,你这公式哪有乘方运算?

我现在没有编译环境,无法测试.

2+22+222+2222+22222

= 1*2 + 11*2 + 111*2 + 1111*2 + 11111*2
= (1+11+111+1111+11111)*2
= 12345*2
= 24690

同理:公式是12345 * n

n是你输入的值,不要把简单的问题弄复杂。

上楼的有点错
当j=0时, pow(10 j)=1
j赋值应当为1