c++ 数组长度的问题,不能用.length返回数组长度吗

#include<iostream>#include<cmath>usingnamespacestd;intmain(){/*初始化*/floatpx[20];intn;... #include <iostream>
#include <cmath>
using namespace std;
int main()
{
/*初始化*/
float px[20];
int n;
cout<<"输入n的值:"<<endl;
cin>>n;

for(int i=0;i<n;i++)
{
cout<<"输入p["<<i<<"]的概率"<<endl;
cin>>px[i];
}
cout<<endl;
cout<<endl;

/*排序px[i]*/
float temp;
cout<<"概率从大到小排序后结果:"<<endl;
for(i=0;i<n;i++)
{ for(int j=i+1;j<n+1;j++)
if(px[i]<px[j])
{
temp=px[i];
px[i]=px[j];
px[j]=temp;
}
cout<<px[i]<<", ";
}
cout<<endl;
cout<<endl;

/*求pa[i]的值*/
float pa0=0;
cout<<"第i个码字的累加概率:"<<endl;
cout<<"pa[0]="<<pa0<<", ";
float pa[20];
for(i=1;i<n;i++)
{
pa[0]=0;
pa[i]=pa[i-1]+px[i-1];
cout<<"pa["<<i<<"]的值="<<pa[i]<<", ";
}
cout<<endl;
cout<<endl;

/*求k[i]自信息量 和 码字*/

int t[20];
float k[20];
for(i=0;i<n;i++)
{ t[i]=-log(px[i])/log(2);
k[i]=-log(px[i])/log(2);
if(t[i]<k[i])
k[i]=t[i]+1;

cout<<"k["<<i<<"]自信息量(码字长度)为"<<k[i]<<",";

//实现二进制编码
int code[20];
for(i=0;i<n;i++)
for(int j=0;j<k.length;j++){
if(pa[i]*2<1)
{
code[j]=0;
pa[i+1]=pa[i]*2;
}
else
{
code[j]=1;
pa[i+1]=pa[i]*2-1;
}
cout<<"pa["<<i<<"]的码字为:"<<endl;
}

return 0;

}

}

请帮忙改改,在看下实现二进制编码时有没有其他的错误,谢谢,在线等
展开
 我来答
54zhangxun
2015-10-09 · TA获得超过684个赞
知道小有建树答主
回答量:374
采纳率:75%
帮助的人:145万
展开全部
C++:是在C语言的基础上开发的一种通用编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8月18日公布。[1] 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!

C++没有.length这个封装方法来获取长度,要想获取数组的长度可以有很多方法,最简单的就是调用API来获取strlen函数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
teenmix8810
2009-06-09 · 超过11用户采纳过TA的回答
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
//实现二进制编码
cout<<"p["<<i<<"]的码字为:";
for(int j=0;j<k[i];j++)
{
if(pa[i]*2<1)
{
code[j]=0;
pa[i]=pa[i]*2;
}
else
{
code[j]=1;
pa[i]=pa[i]*2-1;
}
cout<<code[j];
}
cout<<endl;

这样就可以了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cd3675a
2009-06-06 · TA获得超过335个赞
知道答主
回答量:191
采纳率:100%
帮助的人:174万
展开全部
//实现二进制编码
char code[20];
for(i=0;i<n;i++)
{
_itoa(pa[i],code,2);
printf("String of pa[%d] : %s\n",i,code);
}

return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式