printf(\显示所有学生的个人信息\\n\ printf(\更改学生个人信息\\n\ printf(\退出\\n\
printf(\请选择您要执行的选项:\\n\ }
(4)程序的输入和输出
图1
按学生学号查找结果:
图2
按学生姓名查找:
图3
删除某学生的运行结果:
图4
插入某学生的运行结果:
图5
显示所有学生的信息:
图6
(5)调试程序中遇到的问题及解决方案
在调试search1子函数由于在查找中移动了原指针,导致search1中不能查找,解决方法设一结构体类型的指针,将原指针赋给该指针,将该指针进行移动查找。在调试chance()中,如何对已有的记录进行从新输入更改。解决方案为在chance()子函数中加入一个查找的程序,也就是说先找到要修改的学生信息,用scanf语句对要修改的学生的信息进行重新输入,再将所赋的信息通过赋值语句将修改后的学生信息赋给该学生对应的结构体。如何返回一个结构体中信息,解决方案是采用指针类型,将变量的地址作为实参赋给子函数。数组名代表数组首地址,用scanf语句赋值字符串时,不用加地址操作符。
思考题解析
所选择的思考题: 编写一个算法,构造一棵哈夫曼树。 程序如下: typedef struct{
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree; typedef char * *HuffmanCode
void HnffCodeding(HnffmanTree &HT,&HC,int *w,int n) {
if(n<=1) return; m=2*n-1;
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));