新手求助
c++吧
全部回复
仅看楼主
level 5
muyexiudong 楼主
#include<iostream>
#include<cmath>
using namespace std; int main()
{ int n,m;
cout<<"请输入您所要转换2进制值的位数";
cin>>n;
char *p;
p=new char[n+1];
cout<<"请输入2进制数"<<endl;
for(int i=0;i!=n;++i)
{ cin>>m;
p[i]=m;
//cin>>p[i];
}
double sum=0; for(int i=0;i!=n;++i)
{
sum+=p[i]*pow(2.0,n-i-1);
}
cout<<sum;
//cout<<fun(p,n)<<endl;
return 0;
}
这个cin>>m;
p[i]=m;
与cin>>p[i]的有什么区别吗?
为什么我用cin>>m;
p[i]=m;
结果是对的而cin>>p[i]是错的
这是为什么
2012年05月02日 03点05分 1
level 1
请仔细考虑 int 类型 和 char 类型的区别,以及 int 类型 和 char 类型互相转换的问题,
答案就在这里。
虽然你的第一种方式得到的结果是对的,但是处理的过程是很糟糕的。
或者说你本意是用一个字符串储存你输入的101010这些,但是当你完成输入和计算后,
用cout 输出这个 p 字符串,能得到你期望的结果吗。
应该还是用 cin >> p[i] 的方式接受数据,然后通过一定的转换,得到你需要的结果。
2012年05月02日 03点05分 2
1