帮忙看一下这段程序有什么错误,我找不出来

#include<iostream.h>#include<malloc.h>#include<string.h>typedefstruct{unsignedintweig... #include<iostream.h>
#include<malloc.h>
#include<string.h>
typedef struct{
unsigned int weight;
unsigned int parent, lchild,rchild;
}HTNode,*Huffmantree;
typedef char * * Huffmancode;

void select(Huffmantree &HT,int n,int &s1,int &s2){
int i;
for(i=1;i<=n;i++)
if(HT[i].parent==0){s1=i;break;}
for(i=1;i<=n;++i){
if((HT[i].parent==0)&&(HT[i].weight<HT[s1].weight))
s1=i;}
for(i=1;i<=n;i++)
if(HT[i].parent==0&&i!=s1){s2=i;break;}
for(i=1;i<=n;i++){
if(i==s1)continue;
if((HT[i].parent==0)&&(HT[i].weight<HT[s2].weight))
s2=i;}
}

void Huffmancoding(Huffmantree &HT,Huffmancode &HC,int * w,int n){
if(n<=1)return;
int m,start,c,f,i,s1,s2;
m=2*n-1;
HT=(Huffmantree)malloc((m+1)*sizeof(HTNode));
Huffmantree p;
?for(p=HT+1,i=1;i<=n;++i,++p,++w)*p={*w,0,0,0};
?for(;i<=m;++i,++p)*p={0,0,0,0};
for(i=n+1;i<=m;++i){
select(HT,i-1,s1,s2);
HT[s1].parent=i;HT[s2].parent=i;
HT[i].lchild=s1;HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;
}
HC=(Huffmancode)malloc((n+1)*sizeof(char *));
char * cd;
cd=(char *)malloc(n*sizeof(char));
cd[n-1]='\0';
for(i=1;i<=n;++i){
start=n-1;
for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent)
if(HT[f].lchild==c)cd[--start]='\0';
else cd[--start]='1';
HC[i]=(char *)malloc((n-start)*sizeof(char));
strcpy(HC[i],&cd[start]);
}free(cd);
}

void main(){
int i,*p;
Huffmantree HT;
Huffmancode HC;
int w[]={1,2,3,4,5};
p=w;
Huffmancoding(HT,HC,p,5);
for(i=1;i<=5;i++)
cout<<HC[i]<<endl;}
我打问号那里,老提示有错误
展开
 我来答
maxiuxiaoxia
2006-12-08 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:0
展开全部
#include<iostream.h>
#include<malloc.h>
#include<string.h>
typedef struct{
unsigned int weight;
unsigned int parent, lchild,rchild;
}HTNode,*Huffmantree;
typedef char * * Huffmancode;

void main()
{
Huffmantree ht;
Huffmancode hc;
}
ht现在是一个指针,而hc现在是一个什么我就不知道了
你的错误很多
先指出一些把:
if(HT[f].lchild==c) X C是整型 而前面的是单精度字符型
?for(p=HT+1,i=1;i<=n;++i,++p,++w)*p={*w,0,0,0};
不可以这么赋值,不信的话,试试下面的代码
#include<iostream.h>
typedef struct{
unsigned int weight;
unsigned int parent, lchild,rchild;
}HTNode,*Huffmantree;
typedef char * * Huffmancode;
void main()
{

Huffmantree HT;
*HT={0,0,0,0};

}
你看看这个,它也无法编译成功
你可以把它们分别赋值,如ht->得到成员后赋值
力控科技
2025-03-07 广告
第一步:看XPE是什么版,如果内核是英文版,需要安装一个MUI包,即语言包。第二步:进入控制面板-区域和语言选项,如下图,在区域选项中,选择“中文(中国)”,位置也为“中国”,在高级选项中,代码页转换表中,将所有的“简体中文”都选择上。... 点击进入详情页
本回答由力控科技提供
耐心且鲜丽灬榜首0A
2006-12-08 · TA获得超过1893个赞
知道小有建树答主
回答量:750
采纳率:100%
帮助的人:478万
展开全部
去掉大括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式