回 帖 发 新 帖 刷新版面

主题:这问题我怎么也想不通 请高手指点一下

此题是让把字符串数组不变的用整型输出,输出的只能是一个变量不能是数组。比如输入456输出也应是456 我编的程序如下
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
int main()
{char  str[12];
cin>>str;
int k;
k= strlen(str);
int i=k-1,a=0;
while(i>=0)
{a=a+(str[i]-'0')*pow(10,k-1-i) ; i--; }
printf("%d",a);
system("pause");
return 0;    }
我用DEVc++编的 输入两位数时 输出也是这两位数比如输入12 输出也是12 但是我输入三位数时比如输入123 输出的确是122 输入100时显示的是99。真不明白为什么。请各位哥哥,姐姐帮忙解答一下。 
而且把12行两条语句改为一条为{a=a+(str[i--]-'0')*pow(10,k-1-i) ; }的语句得数就不一样

回复列表 (共3个回复)

沙发

你的程序没有问题,只看你的运行环境有没有问题了。
还有你编的程序一点都不好看,呵呵,注意下进出格式,
养成良好的编程习惯很重要。
  另外你的问题属于C++,不是java,哈哈

板凳

您用的是devC++吗?我用的是devc++

3 楼

呵呵 楼主啊,怎么发到Java版块来了啊,你的问题在于用了pow函数,然而这个函数并不是计算整数用的,而是计算浮点的,所以你用它就会产生
微小的误差,
你完全可以用循环乘来运算10的幂啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册