| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 819 人关注过本帖
标题:[求助]编程题求解
只看楼主 加入收藏
mokoto
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-1-7
收藏
 问题点数:0 回复次数:9 
[求助]编程题求解
老师布置作业下来,叫我们完成一道编程题,小妹我不会特来请教各位师兄师姐
题目如下:
完成任意二个多项式的相加。
比如:A:3*X*X*X+5*X*X+5
         B:7*X*X*X*X+8*X*X*X+12                                
结果是:7*X*X*X*X+11*X*X*X+5*X*X+17  

望大师们帮我解决一下。。。。。。小妹在此感激不进
搜索更多相关主题的帖子: 求解 大师 小妹 多项式 
2005-01-07 20:18
mokoto
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-1-7
收藏
得分:0 
各位帮帮忙吧。。。。。。。。。。小妹在此跪求了。。。
2005-01-07 20:26
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
收藏
得分:0 
最简单的办法是用两个数组实现,采用栈的数据结构吧,用数组里元素的序号表示X的幂次,当无对应的X幂次,该元素为0,然后把两个数组相加就好了。如果多项式的幂次很高,就可以采用链表,不过那样会比较复杂

此人已消失
2005-01-08 08:43
mokoto
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-1-7
收藏
得分:0 
我们没有教过数据结构,我们一定要用C语言来编的。做这道题要采用指针和链表的,大师你能帮我吗
2005-01-08 09:53
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 

没用指针和链表做了个,数组的 #include <stdio.h>

int main() { int i,he[2],a[21]={0},b[21]={0}; scanf("%d",&he[0]); for( i=0 ; i<=he[0] ; i++ ) scanf("%d",&a[i]); scanf("%d",&he[1]); for( i=0 ; i<=he[1] ; i++ ) scanf("%d",&b[i]); if(he[0]<he[1]) he[0]=he[1]; for( i=0 ; i<=he[0] ; i++ ) a[i]=a[i]+b[i]; for( i=he[0] ; i>=0 ; i-- ) { if(a[i]==0) continue; printf("%d%s+",a[i],"*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X"+(20-i)*2); } printf("\b \n"); return 0; }

程序操作: 假设maximum为20项 输入关键信息,如多项式的最高次数和各项系数(由低到高) 例: a: 5*X*X*X+6*X*X+7*X+4 b: 3*X*X+4*X 求a+b

输入: 3 4 7 6 5 2 0 4 3 输出: 5*X*X*X+9*X*X+11*X+4


2005-01-08 11:40
mokoto
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-1-7
收藏
得分:0 
谢谢,不过我运行的时候,把数据打入进去,结果不会返回
2005-01-08 12:48
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 
用的什么编译器? tc, win-tc , vc++ 我都试过了,可以啊。
还有数据是怎么输入的?把操作过程复制下来,贴出来看看。

2005-01-08 23:48
mokoto
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-1-7
收藏
得分:0 
可以运行了。。原来我打错了。你能帮我解释一下这段程序吗???
2005-01-09 12:43
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 
这已经很简单了,恕我直言,我都不知道要怎么解释。
自己静下心来仔细看看吧,劳动才会有收获,对你有好处的,否则你是学不好的(不想学好的当我这句白说)。

2005-01-10 11:20
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 

#include <stdio.h>

void sym(char c[],int i) { int j; for( j=0 ; j<i ; j++) printf("%c%c",c[0],c[1]); }

int main() { int i,he[2],a[21]={0},b[21]={0}; char c[2]="*X"; scanf("%d",&he[0]); for( i=0 ; i<=he[0] ; i++ ) scanf("%d",&a[i]); scanf("%d",&he[1]); for( i=0 ; i<=he[1] ; i++ ) scanf("%d",&b[i]); if(he[0]<he[1]) he[0]=he[1]; for( i=0 ; i<=he[0] ; i++ ) a[i]=a[i]+b[i]; for( i=he[0] ; i>=0 ; i-- ) { if(a[i]==0) continue; printf("%d",a[i]); sym(c,i); printf("+"); } printf("\b \n"); return 0; }


2005-01-11 06:58
快速回复:[求助]编程题求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031616 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved