C語言多項式乘法模擬,急!!!!c語言:求n次多項式的加法和乘法

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

if(s->data.coef!=0.0)

{

s->data.expn=p->data.expn;

r->next=s;

r=s;

}

p=p->next;

q=q->next;

break;

case?1:

s->data.coef=q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

break;

}//switch

}//while

/*if(p!=NULL)

r->next=p;

else

if(q!=NULL)

r->next=q;

else

r->next=NULL;*/?//這樣不行,q,p為局部變量,傳不到主函數中去

while(p)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=p->data.coef;

s->data.expn=p->data.expn;

r->next=s;

r=s;

p=p->next;

}

while(q)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

}

r->next=NULL;

for(q=newp->next;q->next!=NULL;q=q->next)//合并同類項

for(p=q;p!=NULL&&p->next!=NULL;p=p->next)

if(q->data.expn==p->next->data.expn)

{

q->data.coef=q->data.coef+p->next->data.coef;

r=p->next;

p->next=p->next->next;

free(r);

}

return?newp;

}

/*3、兩多項式相減*/

polynomail?subpolyn(polynomail?pa,polynomail?pb)

{

polynomail?s,newp,q,p,r,Q;

p=pa->next;q=pb->next;

newp=(LNode*)malloc(sizeof(LNode));

r=newp;

while(p&&q)

{

s=(LNode*)malloc(sizeof(LNode));

switch(cmp(p->data,q->data))

{

case?-1:

s->data.coef=p->data.coef;

s->data.expn=p->data.expn;

r->next=s;

r=s;

p=p->next;

break;

case?0:

s->data.coef=p->data.coef-q->data.coef;

if(s->data.coef!=0.0)

{

s->data.expn=p->data.expn;

r->next=s;

r=s;

}

p=p->next;

q=q->next;

break;

case?1:

s->data.coef=-q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

break;

}//switch

}//while

while(p)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=p->data.coef;

s->data.expn=p->data.expn;

r->next=s;

r=s;

p=p->next;

}

while(q)

{

s=(LNode*)malloc(sizeof(LNode));

s->data.coef=-q->data.coef;

s->data.expn=q->data.expn;

r->next=s;

r=s;

q=q->next;

}

r->next=NULL;

if(newp->next!=NULL&&newp->next->next!=NULL)//合并同類項

{

for(q=newp->next;q!=NULL;q=q->next)

for(p=q->next,r=q;p!=NULL;)

if(q->data.expn==p->data.expn)

{

q->data.coef=q->data.coef+p->data.coef;

r->next=p->next;

Q=p;p=p->next;

free(Q);

}

else

{

r=r->next;

p=p->next;

}

}

return?newp;

}

/*4、銷毀已建立的兩個多項式*/

void?delpolyn(polynomail?pa,polynomail?pb)

{

polynomail?p,q;

p=pa;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

p=pb;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

printf("兩個多項式已經銷毀\n");

}

void?main()

{

polynomail?pa=NULL,pb=NULL;

polynomail?addp=NULL,subp=NULL,p,q;

int?n,m;

char?sign='y';

printf("1、創建兩個一元多項式\n");

printf("2、兩多項式相加得一新多項式\n");

printf("3、兩多項式相減得一新多項式\n");

printf("4、銷毀已建立的兩個多項式\n");

printf("5、退出\n");

printf("\n");

while(sign!='n')

{

printf("請選擇:");

scanf("%d",&n);

switch(n)

{

case?1:

if(pa!=NULL)

{

printf("已建立兩個一元多項式,請選擇其他操作!");

break;

}

printf("請輸入第一個多項式:\n");

printf("要輸入幾項:");

scanf("%d",&m);

while(m==0)

{

printf("m不能為0,請重新輸入m:");

scanf("%d",&m);

}

pa=creatpolyn(pa,m);

printpolyn(pa);

printf("請輸入第二個多項式:\n");

printf("要輸入幾項:");

scanf("%d",&m);

pb=creatpolyn(pb,m);

printpolyn(pb);

break;

case?2:

if(pa==NULL)

{

printf("請先創建兩個一元多項式!\n");

break;

}

addp=addpolyn(pa,pb);

printpolyn(addp);

break;

case?3:

if(pa==NULL)

{

printf("請先創建兩個一元多項式!\n");

break;

}

subp=subpolyn(pa,pb);

printpolyn(subp);

break;

case?4:

if(pa==NULL)

{

printf("請先創建兩個一元多項式!\n");

break;

}

delpolyn(pa,pb);

pa=pb=NULL;

break;

case?5:

if(addp!=NULL)

{

p=addp;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

}

if(subp!=NULL)

{

p=subp;

while(p!=NULL)

{

q=p;

p=p->next;

free(q);

}

}

exit(-2);

}//switch

}//while

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396790.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396790.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396790.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

opengl 安裝_如何使得支持 OpenGL 的 Flatpak 應用和游戲在專有 Nvidia 圖形驅動下工作 | Linux 中國...

一些支持 OpenGL 并打包為 Flatpak 的應用和游戲無法使用專有 Nvidia 驅動啟動。本文將介紹如何在不安裝開源驅動(Nouveau)的情況下啟動這些 Flatpak 應用或游戲。-- Logix這有個例子。我在我的 Ubuntu 18.04 桌面上使用專有的 Nvidia 驅動程序 (nvidia-driver-390)&#xff0c…

laravel -admin 禁止某一行刪除

$grid->actions(function (Grid\Displayers\Actions $actions) {if ($actions->getKey() 1) {$actions->disableDelete();} });轉載于:https://www.cnblogs.com/vinzen/p/9675823.html

thinkphp-where-數組條件-普通查詢

語法Db::table(表名)->where(條件)->select();示例$map[name] thinkphp; $map[status] 1;// 把查詢條件傳入查詢方法 Db::table(think_user)->where($map)->select();對應原始sqlSELECT * FROM think_user WHERE namethinkphp AND status1轉載于:https://blog.51…

RequireJS入門(一)

RequireJS由James Burke創建,他也是AMD規范的創始人。 RequireJS會讓你以不同于往常的方式去寫JavaScript。你將不再使用script標簽在HTML中引入JS文件,以及不用通過script標簽順序去管理依賴關系。 當然也不會有阻塞(blocking)的…

Oracle數據庫中游標的游標的使用

本人不喜歡說概念啥的,就直接說明使用方法吧 案例1: 1 DECALRE2 --聲明游標3 CURSOR C_USER(C_ID NUMBER) IS4 SELECT NAME FROM USER WHERE TYPEID C_ID;5 V_NAME C_USER%rowtype; --定義游標變量6 BEGIN7 OPEN C_USER(變量值); …

eclipse占用內存過大_idea被評最好用java開發工具,為什么用eclipse的人更多?

從事java開發一般都需要使用到一些開發工具,記得以前剛接觸java的時候還用過MyEclipse。idea被評為最好用java開發工具,為什么用eclipse的人更多?下面一起來了解下吧!IDEA畢竟不便宜啊,很多企業都買不起只能用Eclipse了&#xff…

Asp.net mvc 知多少(六)

本系列主要翻譯自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可訪問http://www.dotnettricks.com/free-ebooks自行下載。該書主要分為兩部分,ASP.NET MVC 5、ASP.NET WEB API2。本書最大的特點是以面試問答…

數據結構c語言版總結,數據結構:C語言常見算法總結

【1】求最大值與最小值.#includevoid main(){int num[5],max,min,i;printf(\"請輸入5個數字:\")for(i0;i<5;i)scanf(\"%d\",&num)maxnum[0];minnum[0];for(i1;i<5;i){if(maxmaxnum;if(min>num)minnum;}printf(\"最大值為:%d\",max)…

selenium選錯彈出層的下拉框

要先選中這個彈出層的form元素&#xff0c;再找下拉框 public void downSelectBox(){driver.get("https://www.imooc.com/user/setprofile");driver.findElement(By.className("pull-right")).click();try {Thread.sleep(2000);} catch (InterruptedExcept…

python面向過程是基于面向對象的_Python5.1-面向對象與面向過程

面向對象&#xff1a; 將數據與函數綁定在一起&#xff0c;進行封裝&#xff0c; 這樣能夠更快速的開發程序&#xff0c;減少了重復 代碼的重寫過程。 優點&#xff1a; 易維護、易復用、易擴展&#xff0c;由于面向對象有封裝、繼承、多態性的特性&#xff0c;可以設 計出低耦…

C語言 1A gt $20,C語言輸出 1到20 的階乘之和

除了調用庫&#xff0c;絕對找不到比這更精簡的代碼了.#include#includelong long getdata(long long n){long long sum 1;while(n){sum*n--;}return sum;}int main(){long long sum 0;long long nums 20;while(nums){sumgetdata(nums--);}printf("%lld",sum);}【…

PHP設計模式——策略模式

<?php /*** 策略模式* 策略模式幫助構建的對象不必自身包含邏輯&#xff0c;而是能夠根據需要利用其他對象中的算法* * 在能夠創建基于對象的&#xff0c;由自包含算法組成的可互換對象時&#xff0c;最佳的做法是使用策略模式 */ interface Math{function calc($op1,$op2)…

自動化收益評估

1.自動化測試實施成本&#xff1a;自動化實施成本 前期開發成本 后期維護成本 2.自動化測試收益 自動化測試的運行次數 3.自動化測試實施成本比&#xff1a;怕 k*n/&#xff08;cic2&#xff09; k--手工執行自動化用例所花費的時間成本&#xff0c;n--自動化測試用例執行的次…

32位PLSQL Developer無法登錄Oracle 11g 64位

問題&#xff1a; Windows10 64位下裝Oracle 11g 64位&#xff0c;PLSQL Developer使用出現以下問題&#xff1a; 1、Database下拉框為空&#xff1a; 2、強制輸入用戶名、密碼及Database&#xff0c;登錄彈出&#xff1a; 說明PLSQL Developer并不支持Oracle 64位客戶端連接。…

python快速排序函數_python算法-快速排序

快速排序&#xff1a; 學習快速排序&#xff0c;要先復習下遞歸&#xff1a; 遞歸的2個條件&#xff1a; 1. 函數自己調用自己 2.有一個退出的條件 練習&#xff1a;基于遞歸下一個函數&#xff0c;計算n&#xff01;并且求出當n等于10的值。 n&#xff01;n * n-1*…..*1 #enc…

c語言課程結束,【計算機】程序設計——C語言基礎秋季學期課程圓滿結束

2019年10月22日11&#xff1a;40&#xff0c;在同學們發自內心的掌聲中&#xff0c;課外培養中心開辦的程序設計——C語言基礎課程圓滿落幕。本次課程由計算機中心的陶媛老師予以指導&#xff0c;在短短五次課的時間里&#xff0c;同學們對學習C語言都有了更深的體悟。對于大部…

struts2獲取請求參數的三種方式及傳遞給JSP參數的方式

接上一篇文章package test;import com.opensymphony.xwork2.ActionSupport; import javax.servlet.http.*; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import java.util.*; public class HelloAction extends ActionSup…

iOS input被鍵盤遮擋

//解決第三方軟鍵盤喚起時底部input輸入框被遮擋問題var bfscrolltop document.body.scrollTop;//獲取軟鍵盤喚起前瀏覽器滾動部分的高度$("input.inputframe").focus(function(){//在這里‘input.inputframe’是我的底部輸入欄的輸入框&#xff0c;當它獲取焦點時觸…

CentOS6.5 搭建Open***服務器

前言&#xff1a;之前搭建過程中找了5-6個教程一起看&#xff0c;真是累&#xff0c;難道就沒有寫的詳細一點&#xff0c;一次成功的嗎&#xff0c;基于此花了一下午制作了本教程&#xff0c;實際測試2遍均成功&#xff0c;懶人福音。基礎環境&#xff1a;系統&#xff1a;Cent…

python如何在exel中編程_如何使用Python以編程方式將行添加到現有Excel表中

盡管有各種各樣的pythonexcel操作庫和資源&#xff0c;但我無法找到具體的解決方案。在 現在&#xff0c;我有一個表格存在的Excel模板文件。我想編寫一個Python程序來填充這個表。對于任何現有的Excel庫都可以這樣做嗎&#xff1f;模板Excel文件包含一個空表的工作表&#xff…