第一范文网 - 专业文章范例文档资料分享平台

《数据结构实验与实训教程(第4版)》程序代码

来源:用户分享 时间:2025/5/23 17:11:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验5 数组的基本操作

四、参考程序

程序1:题1 Fibonacci数列 #include #define MAX 20 void main() { int i; int fib[MAX]; fib[0] = 0; fib[1] = 1;

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 #include #define MIN 0.00005 /* 定义近似于0的值 */

/* 已知两多项式的系数和幂次, 返回最大公因式的幂次, 在*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

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

《数据结构实验与实训教程(第4版)》程序代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4h2hq3inll036ax5ujvd_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top