关于c语言的小疑点
关于c语言的小问题
下面这个程序是计算
当你输入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函数会有精度误差,把
改为以下的方式:
下面这个程序是计算
当你输入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;
}