《数据结构实验与实训教程(第4版)》程序代码(8)
double *pA, *pB; /* 多项式A(x), B(x)的系数数组 */ double *q; /* 最大公因式系数 */ int An, Bn; /* 多项式A(x), B(x)的幂次 */ int n; while( 1 ) { if( 9 ) return;
if( Input( &pB, &Bn, \ ) != 0 ) return;
printf( \表达式A(x)的格式为\\n\ ); Print( pA, An );
printf( \表达式B(x)的格式为\\n\ Print( pB, Bn );
n = 10 ; printf( \最大公因式表达式为\\n\
Print( q, n ); /* 输出最大公因式表达式 */
free( pA );
free( pB ); } }
35
实验6 字符串的基本操作
四、参考程序
程序1:题1 字符串匹配 #include
/* 简单模式匹配算法 */
int simple_match( char *t, char *p ) { int n, m, i, j, k; n = strlen( t ); m = strlen( p );
for( j = 0; 1 ; j++ ) { /* 顺序考察从t[j]开始的子串 */ for( i = 0; 2 ; i++ ) ; /* 从t[j]开始的子串与字符串p比较 */
if( i == m ) /* 匹配成功 */
return 0;
}
return 1; /* 匹配失败 */
}
void main() { char *s1[]={ \ }; char *s2[]={ \c123\ int i; for( i = 0; i < 3; i++ ) {
printf( \长字符串[%s] 匹配子串[%s] \ if( 3 ) printf( \ 匹配成功\\n\ ); else
printf( \匹配失败\\n\
}
}
程序2:题2 公共字符串
int commstr( char *str1, char *str2, int *lenpt )
36
{ int len1, len2, ln, count, i, k, p; char *st, form[20];
if( (len1=strlen(str1)) < (len2=strlen(str2)) ) { /* 使str1的长度不小于str2 */ st = str1; str1 = str2; str2 = st; ln = len1;
len1 = len2;
len2 = ln; } count = 0; for( 1 ; ln > 0; ln-- ) { /* 找长为ln的公共子串 */ for( k = 0; 2 ; k++ ) {
/* 自str2[k]开始的长为ln的子串与str1中的子串比较 */ for( p = 0; p + ln <= len1; p++ ) { /* str1中的子串自str1[p]开始, 两子串比较通过对应字符逐一比较实现 */ for( i = 0 3 ;; i++ ) ;
if( i == ln ) { /* 找到一个最长公共子串 */
sprintf( form, \子串%%d[%%%d.%ds]\\n\
printf( form, ++count, str2+k );
} } } if( 4 ) break; }
5 ; return count; }
void main() { int c, len; c = commstr( \, \, &len ); printf( \共有%d个长为%d的公共子串\\n\}
程序3:题3 排版输出
37
#include
/* 正文排版输出函数 s:预处理后的正文 nw:单词个数 sl:单词在s中的起始位置 sn:单词长度 */
void paiban( char *s, int nw, int *sl, int *sn ) {
int i, j, n, k, lnb, ln, m, ln1, lnw; char info[81]; ln = sn[0]; /* 一行中单词长度之和(包括每个单词间的一个空格) */ for( i=1,j=0; i < nw; i++ ) { /* 循环输出至最后一行前 */
ln1 = ln + 1 + sn[i]; if( 1 )
ln = ln1; else { n = 80 - ln; lnw = 2 ; /* 每个单词间隔的空格 */ lnb = 3 ; /* 按lnw个间隔排版后, 还多余的空格 */ for( k = 0; k < 80; k++ ) /* 将行输出内容初始化成全部空格 */ info[k] = ' '; info[80] = '\\0'; k = 0; /* k值为下一个单词在行中的起始位置 */ while( j < i ) { /*在一行中输出第j个至第i个单词*/ for( m = 0; m < sn[j]; m++ ) /* 将单词拷贝到行中 */ 4 = s[ sl[j] + m ]; k += 5 ; /* 设置下一单词位置 */ if( lnb > 0 ) { /* 该行中还有多余的空格 */ k++;
6 ;
} j++; }
printf( \, info );
ln = sn[i]; } }
for( k = 0; k < 80; k++ ) info[k] = ' '; info[80] = '\\0'; k = 0;
while( 7 ) {
38
for( m = 0; m < sn[j]; m++ ) info[k+m] = s[ sl[j] + m ]; k += 1 + sn[j]; j++; }
printf( \
}
void main() { int i;
char form[10]; char str[]=\is\\ trying\\ hard\\ tolearn\\
english\\ spanishisthe\\ language\\ ofherthoughts\\
anddreamsinshcool\\ sheisquietandsad\\ andsometimes\\ angryshemovesalone\\ fromonefourth-grade\\ classtoanother\\
thengoeshometowait\\ forherparents\\ toreturnfromwork\\ wayafterdark\\ shehasnot\\
beenhappysinceshemovetowashington\\ fromperu\\
expertssaythat\\ gamesandactivitys\\
are\\ the\
int sn[]={5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,4,3,2,1};
39
…… 此处隐藏:429字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]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年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




