《数据结构实验与实训教程(第4版)》程序代码(7)
p->total = p->sortm = random( 201 ); p->z[0] = random( m ); /* 应聘人员第一志愿 0 ~ m-1 */ p->z[1] = random( m ); /* 应聘人员第二志愿 0 ~ m-1 */ p->zi = 0; /* 录取志愿初始化为0, 即第一志愿 */ printf( \ Insert( h, p ); } printf( \ return 0; }
void main() { int m;
/* 工种总数, 编号为 0 ~ M-1 */ int n; /* 应聘人员总数 */
JOB *rz; int all;
/* 计划招聘人员总数 */
STU *head=NULL, *over=NULL; /* 应聘人员队列, 落聘人员队列 */ STU *p; int i; while( 1 ) { m = n = 0; printf( \请输入工种总数(1~20),= 0:退出 \ scanf( \ if( m == 0 ) /* 退出 */ return;
if( m > 20 || m < 0 )
continue; if( 5 != 0 ) /* 生成工种信息 */ return; printf( \请输入应聘人员总数(5~400),= 0:退出 \ scanf( \ if( n == 0 ) /* 退出 */ return;
if( n < 5 || n > 400 ) {
free( rz ); /* 释放工种信息空间 */ continue; } if( 6 != 0 ) /* 生成应聘人员信息 */
30
return;
printf( \应聘人员队列\\n\ OutPutStu( head ); While( 7 ) { /* 当人员没招满且队列不为空 */ p = head; /* 取应聘人员队首指针 */ head = head->next; /* 队首指针下移 */ i = p->z[ p->zi ]; /* 取该应聘人员的应聘工种号 */ if( rz[i].count < rz[i].lmt ) { /* 该工种人员没招满 */ rz[i].count++; 8 all--; continue; }
if( p->zi >= 1 ) { p->next = over; /* 该工人入落聘者队列 */
over = p;
continue;
} p->sortm -= DEMARK; /* 该工种已招满, 工人分数降档 */ p->zi = 1; /* 该工人改为第二志愿 */ 9 /* 10 */ }
for( i = 0; i < m; i++ ) { /* 打印各工种招聘情况 */ printf( \工种[%d]招聘情况\\n\ OutPutStu( rz[i].stu ); printf( \ }
printf( \落聘人员\\n\ OutPutStu( head ); OutPutStu( over ); printf( \
for( i = 0; i < m; i++ )
/* 释放各工种招聘人员空间 */
FreeStu( &rz[i].stu ); 11 /* 释放落聘人员空间 */ FreeStu( &over ); /* 释放落聘人员空间 */ free( rz ); /* 释放工种信息空间 */
}
}
31
实验5 数组的基本操作
四、参考程序
程序1:题1 Fibonacci数列 #include
for( i = 2; i < MAX; i++ ) fib[i] = fib[i-1] + fib[i-2];
for( i = 0; i < MAX; i++ ) /* 输出格式: 每个数字以TAB键分隔, 5个为一行 */ printf( \, fib[i], (i%5)==4 ? '\\n' : '\\t' ); }
程序2:题2 数组操作 #include
#define MAX 5 void main() {
int i, j, n = 1;
int a[MAX][MAX];
for( i = 0; 1 ;i++ ) for( j = 0; j < MAX; j++ )
2 ; for( i = 0; i < MAX; i++ ) { for( j = 0 3 ;; j++ ) printf( \, a[i][j] ); printf( \ ); } }
程序3:题3 多项式相除
32
#include
/* 已知两多项式的系数和幂次, 返回最大公因式的幂次, 在*q中得到系数表的首指针 */
int Remainder( double *pa, int an, double *pb, int bn, double **q ) {
double x, *temp; int k, j;
if( an < bn ) {
/* 使多项式a(x)的幂次不低于多项式b(x)的幂次 */
temp = pa;
1 ; pb = temp; /* 使pa,pb值互换 */ }
while( 1 ) { while( *pb < MIN && *pb > -MIN && bn > 0 ) {
/* 忽略多项式b(x)最高次系数为0的项 */
bn --; pb ++; }
if( *pb < MIN && *pb > -MIN && 2 )/* 多项式b(x)为0, 退出循环 */ break; if( bn < 0 ) { *q = pb; return 0;
/* 请注意浮点型变量的判断为零方式 */ /* 无最大公因式 */
k = an; an = bn; bn = k;
/* 使an,bn值互换 */
} k = 0; x = *pb; while( k <= bn )
/* 使多项式b(x)的最高次项系数为1 */
pb[k++] /= x;
for( k = 0; k <= an - bn; k++ ) { /* 求a(x)/b(x), 商多项式有an-bn+1项 */ x = pa[k]; /* 商多项式的当前项系数x=pa[k] */ for( j = 0 3 ;; j++ ) /* 从a(x)中减去x*b(x) */ 4 ;/* pa[k]应置0, 但不再使用, 故未置0 */ }
temp = pa;
pa = 5 ;
33
pb = 6 ; /* b(x) = { a(x) / b(x) 后的余数多项式 } */ an = 7 ; /* 余数多项式的幂次为除数多项式幂次-1 */
}
8 ; return an; /* 返回多项式的幂次 */ }
int Input( double **p, int *n, char *note )
/* 多项式输入函数 */
{
int i;
double *pa;
printf( \请输入多项式%s的幂次, <=0退出 \
scanf( \%d\if( *n <= 0 ) return 1;
if( ( pa = (double *)malloc( (*n+1) * sizeof(double) ) ) == NULL ) { printf( \内存申请错误\\n\return -1; }
for( i = *n; i >= 0; i-- ) { printf( \请输入多项式%s%d次幂的系数 \, note, i ); scanf( \%lf\}
*p = pa;
return 0; }
void Print( double *q, int n ) /* 输出最大公因式表达式 */ { int i;
for( i = n; i >= 1; i-- ) if( q[i] > MIN || q[i] < -MIN ) printf( \, q[i], i ); if( q[0] > MIN || q[0] < -MIN ) printf( \, q[0] ); printf( \}
void main() {
34
…… 此处隐藏:861字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




