关于c语言的小疑点

关于c语言的小问题
本帖最后由 mugunagyu 于 2015-09-15 16:46:18 编辑
下面这个程序是计算
当你输入m,n    这两个数时,表示计算m+mm+mmm+直到n个m
也就是当你输入2,4
表示2+22+222+2222



为什么下面这个程序出现错误
#include <stdio.h>
#include <stdlib.h>
#include<math.h>

long getSame(int x,int n)
{
   int i;
   long num=0;
   for(i=0;i<n;i++)
   {
       num+=x*pow(10,i);
   }
   return num;
}

int main()
{
    int x,n,i;
    long num=0;
    scanf("%d,%d",&x,&n);
    for(i=0;i<n;i++)
    {
        num+=getSame(x,i+1);
    }
    printf("%ld\n",num);
    return 0;
}

------解决思路----------------------
为啥我的跑是好的呀
------解决思路----------------------
怎么就不对了,楼主?你看看输入数据格式是否有问题,由于你的 scanf("%d,%d",&x,&n);记得两个数之间敲一个逗号
------解决思路----------------------
难道pow参数语言double型??难道编译器没有任何提示么
------解决思路----------------------
用pow函数会有精度误差,把
pow(10, n);

改为以下的方式:

int s = 1;
int i;
for(i = 0; i < n; i++)
{
    s *= 10;
}