
怎么用C语言做一个一元多项式的程序
用链表表示一元多项式(系数和指数)建立两个多项式链表实现两个多项式的加法、减法和乘法将运算前和运算后的多项式以文本的方式存储在文件中尽量少用全局变量。本人大一小白,教材是...
用链表表示一元多项式(系数和指数)
建立两个多项式链表
实现两个多项式的加法、减法和乘法
将运算前和运算后的多项式以文本的方式存储在文件中
尽量少用全局变量。
本人大一小白,教材是谭浩强的c程序设计(第四部)。求大神来解答 展开
建立两个多项式链表
实现两个多项式的加法、减法和乘法
将运算前和运算后的多项式以文本的方式存储在文件中
尽量少用全局变量。
本人大一小白,教材是谭浩强的c程序设计(第四部)。求大神来解答 展开
2个回答
展开全部
#include <stdio.h>
#include<windows.h>
void re(int max,int number); //判断符号输出
int main()
{
int number[101]={0}; //存放指数幂
int x1,x2;
int esc=1,max=0;
for(int i=0;esc==1;i++) {
scanf("%d %d",&x1,&x2);
if(i==0) {
max=x1;
}
if(x2!=0){
number[x1]+=x2; //同一个次幂的系数都存在数组的同一个位置
// printf("%d",number[x1]);
}
if(x1==0) { //数据停止录入的指令
esc=0;
}
// printf("min=%d,max=%d\n",min,max);
}
int n_number[101]={0}; //存放指数幂
int n_max=0;
for(int i=0;esc==0;i++) {
scanf("%d %d",&x1,&x2);
if(i==0) {
n_max=x1;
}
if(x2!=0){
n_number[x1]+=x2; //同一个次幂的系数都存在数组的同一个位置
// printf("%d",number[x1]);
}
if(x1==0) { //数据停止录入的指令
esc=1;
}
// printf("min=%d,max=%d\n",min,max);
}
if(n_max>max) { //整个if用于将两个多项式的系数传给其中最大幂指数较大的数组
for(int i=4;i>=0;i--) {
if(number[i]!=0||n_number[i]!=0) {
n_number[i]+=number[i];
// printf("n_number[%d]=%d\n",i,n_number);
}
if(n_number[i]!=0){
int data=n_number[i];
// printf("%d",n_number[i]);
re(i,data);
}
}
}else {
for(int i=100;i>=0;i--) {
if(number[i]!=0||n_number[i]!=0) {
number[i]+=n_number[i];
}
if(number[i]!=0) {
int data=number[i];
// printf("%d",number[i]);
re(i,data);
}
}
}
printf("\n");
system("pause");
return 0;
}
void re(int i,int number)
{
if(number!=1){
printf("%d",number); //如果系数为1不输出系数,如果系数为-1输出负号
}else if(number==-1) {
printf("-");
}
if(i) { //当指数不为0时输出x
printf("x");
}
if(i>1) { //防止出现幂数为1的情况
printf("%d",i);
}
if(i>0&&number>0){ //系数为负数时不输出+号
printf("+");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询