国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結構中: 一元多項式的運算(相加,相減,相乘)------用C語言 / C++來實現(xiàn)。 數(shù)據(jù)結構線性表的操作和應用(順序存儲)

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結構中: 一元多項式的運算(相加,相減,相乘)------用C語言 / C++來實現(xiàn)。 數(shù)據(jù)結構線性表的操作和應用(順序存儲)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.實驗題目:

線性表的操作和應用(順序存儲)。用順序存儲實現(xiàn)一元多項式,并進行加、減、乘運算。

2.實驗步驟:

(1)一元多項式結構體創(chuàng)建? (2)初始化

(3)一元多項式賦值? ? ? ? ? ? ?(4)打印一元多項式

(5)加法運算? ? ? ? ? ? ? ? ? ? ? ? (6)減法運算

(7)乘法運算

3.代碼實踐:

? ?全部代碼:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
#define MAX 100 
//用順序存儲實現(xiàn)一元多項式,并進行加,減,乘運算

// 一個系數(shù) ,一個指數(shù) --- 指數(shù)用數(shù)組元素下標代替
typedef struct
{
	int elem[MAX];      //靜態(tài)數(shù)組分配
	int length;
}Sqlist, * Linklist;


//檢查初始化
void Initlist(Linklist L1L2)
{
	if (L1L2)
	{
		printf("初始化成功\n");
		L1L2->length = 0;
	}
	else
	{
		printf("初始化失敗\n");
	}
}


//輸入一元多項式系數(shù)   +   實際確定length值    (直接給length賦值也可以,就不用多次一舉)
Creatlist(Linklist L1L2, int len12)
{
	for (int n = 0; n < len12; n++)
	{
		printf("請輸入第%d位多項式 X^%d 的系數(shù): ", n + 1, n);
		int m;
		scanf("%d", &m);
		L1L2->elem[n] = m;
		L1L2->length += 1;
	}
	printf("\n");
}


//打印一元多項式
void print(Linklist L, int len)
{
	for (int n = 0; n < len; n++)
	{
		printf("%dX^%d ", L->elem[n], n);
		if (n != len - 1)
			printf("+ ");
	}
	printf("\n");
}


//加法運算
void AddPolyn(Linklist L1, Linklist L2, Linklist L3, int len3)
{        //判斷L1,L2 數(shù)組下標是否相同,相同的系數(shù)相加
	printf("一元多項式的加法運算:\n");
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L1->elem[n] + L2->elem[n];
	}
	printf("L1+L2= L3: F(X)= ");
	print(L3, L3->length);
}


//減法運算
SubPolyn(Linklist L1, Linklist L2, Linklist L3, int len3)
{		//判斷L1,L2數(shù)組元素下標是否相同,相同的則系數(shù)相加
	printf("一元多項式的減法運算:\n");       	
	//L1 - L2
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L1->elem[n] - L2->elem[n];
	}
	printf("L1-L2= L3: F(X)= ");
	print(L3, L3->length);
	//L2 - L1
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L2->elem[n] - L1->elem[n];
	}
	printf("L2-L1= L3: F(X)= ");
	print(L3, L3->length);
}


//乘法運算
MultiplyPolyn(Linklist L1, Linklist L2, Linklist L3, int len3)
{
	printf("一元多項式的乘法運算:\n");
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L1->elem[n] * L2->elem[n];
	}
	printf("L1*L2= L3: F(X)= ");
	print(L3, L3->length);
}



int main()
{
	//創(chuàng)建順序表L1,L2,L3
	Linklist L1 = (Sqlist*)malloc(sizeof(Sqlist));    //L1,L2,L3 是 指針  ,沒初始化不好用
	Linklist L2 = (Sqlist*)malloc(sizeof(Sqlist));   // L1,L2,L3 的初始化 并不代表 數(shù)組 的初始化
	Linklist L3 = (Sqlist*)malloc(sizeof(Sqlist));
	//檢查初始化是否成功
	printf("L1 ");
	Initlist(L1);
	printf("L2 ");
	Initlist(L2);
	printf("L3 ");
	Initlist(L3);


	//設定結構體的 length 值
	printf("請設定L1 的length的值:");
	int len1;
	scanf("%d", &len1);
	printf("請設定L2 的length的值:");
	int len2;
	scanf("%d", &len2);
	if (len1 >= len2)
		L3->length = len1;
	else
		L3->length = len2;


	//數(shù)組賦值 + 實際確定length值
	printf("請給 L1 輸入一元多項式的值\n");
	Creatlist(L1, len1);
	printf("請給 L2 輸入一元多項式的值\n");
	Creatlist(L2, len2);


	//打印L1,L2的內容
	printf("一元多項式L1: \n      F(X)= ");
	print(L1, len1);
	printf("一元多項式L2: \n      F(X)= ");
	print(L2, len2);


	//合成版塊
	int input =1;
	printf("\n*****  輸入0:退出程序   *****\n");
	printf("*****  輸入1:加法運算   *****\n");
	printf("*****  輸入2:減法運算   *****\n");
	printf("*****  輸入3:乘法運算   *****\n");
	while (input)
	{
		scanf("%d", &input);
		switch (input)
		{
		case 0:
			printf("退出程序\n");
			break;
		case 1:            //加法運算
			AddPolyn(L1, L2, L3, L3->length);
			break;
		case 2:			   //減法運算
			SubPolyn(L1, L2, L3, L3->length);
			break;
		case 3:			   //乘法運算
			MultiplyPolyn(L1, L2, L3, L3->length);
			break;
		default:
			printf("輸入錯誤,請重新輸入\n");
			break;
		}
	}
}

(1)主函數(shù) 模塊

int main()
{
	//創(chuàng)建順序表L1,L2,L3
	Linklist L1 = (Sqlist*)malloc(sizeof(Sqlist));    //L1,L2,L3 是 指針  ,沒初始化不好用
	Linklist L2 = (Sqlist*)malloc(sizeof(Sqlist));   // L1,L2,L3 的初始化 并不代表 數(shù)組 的初始化
	Linklist L3 = (Sqlist*)malloc(sizeof(Sqlist));
	//檢查初始化是否成功
	printf("L1 ");
	Initlist(L1);
	printf("L2 ");
	Initlist(L2);
	printf("L3 ");
	Initlist(L3);


	//設定結構體的 length 值
	printf("請設定L1 的length的值:");
	int len1;
	scanf("%d", &len1);
	printf("請設定L2 的length的值:");
	int len2;
	scanf("%d", &len2);
	if (len1 >= len2)
		L3->length = len1;
	else
		L3->length = len2;


	//數(shù)組賦值 + 實際確定length值
	printf("請給 L1 輸入一元多項式的值\n");
	Creatlist(L1, len1);
	printf("請給 L2 輸入一元多項式的值\n");
	Creatlist(L2, len2);


	//打印L1,L2的內容
	printf("一元多項式L1: \n      F(X)= ");
	print(L1, len1);
	printf("一元多項式L2: \n      F(X)= ");
	print(L2, len2);


	//合成版塊
	int input =1;
	printf("\n*****  輸入0:退出程序   *****\n");
	printf("*****  輸入1:加法運算   *****\n");
	printf("*****  輸入2:減法運算   *****\n");
	printf("*****  輸入3:乘法運算   *****\n");
	while (input)
	{
		scanf("%d", &input);
		switch (input)
		{
		case 0:
			printf("退出程序\n");
			break;
		case 1:            //加法運算
			AddPolyn(L1, L2, L3, L3->length);
			break;
		case 2:			   //減法運算
			SubPolyn(L1, L2, L3, L3->length);
			break;
		case 3:			   //乘法運算
			MultiplyPolyn(L1, L2, L3, L3->length);
			break;
		default:
			printf("輸入錯誤,請重新輸入\n");
			break;
		}
	}
}

(2)一元多項式結構體創(chuàng)建版塊

// 一個系數(shù) ,一個指數(shù) --- 指數(shù)用數(shù)組元素下標代替
typedef struct
{
	int elem[MAX];      //靜態(tài)數(shù)組分配
	int length;
}Sqlist, * Linklist;

(3)檢查初始化版塊

//檢查初始化
void Initlist(Linklist L1L2)
{
	if (L1L2)
	{
		printf("初始化成功\n");
		L1L2->length = 0;
	}
	else
	{
		printf("初始化失敗\n");
	}
}

(4)一元多項式賦值 模塊

//輸入一元多項式系數(shù)   +   實際確定length值    
Creatlist(Linklist L1L2, int len12)
{
	for (int n = 0; n < len12; n++)
	{
		printf("請輸入第%d位多項式 X^%d 的系數(shù): ", n + 1, n);
		int m;
		scanf("%d", &m);
		L1L2->elem[n] = m;
		L1L2->length += 1;
	}
	printf("\n");
}

(5)一元多項式打印 模塊

//打印一元多項式
void print(Linklist L, int len)
{
	for (int n = 0; n < len; n++)
	{
		printf("%dX^%d ", L->elem[n], n);
		if (n != len - 1)
			printf("+ ");
	}
	printf("\n");
}

(6)加法運算 版塊

//加法運算
void AddPolyn(Linklist L1, Linklist L2, Linklist L3, int len3)
{        //判斷L1,L2 數(shù)組下標是否相同,相同的系數(shù)相加
	printf("一元多項式的加法運算:\n");
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L1->elem[n] + L2->elem[n];
	}
	printf("L1+L2= L3: F(X)= ");
	print(L3, L3->length);
}

(7)減法運算 模塊

//減法運算
SubPolyn(Linklist L1, Linklist L2, Linklist L3, int len3)
{		//判斷L1,L2數(shù)組元素下標是否相同,相同的則系數(shù)相加
	printf("一元多項式的減法運算:\n");       	
	//L1 - L2
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L1->elem[n] - L2->elem[n];
	}
	printf("L1-L2= L3: F(X)= ");
	print(L3, L3->length);
	//L2 - L1
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L2->elem[n] - L1->elem[n];
	}
	printf("L2-L1= L3: F(X)= ");
	print(L3, L3->length);
}

(8)乘法運算 模塊

//乘法運算
MultiplyPolyn(Linklist L1, Linklist L2, Linklist L3, int len3)
{
	printf("一元多項式的乘法運算:\n");
	for (int n = 0; n < L3->length; n++)
	{
		L3->elem[n] = L1->elem[n] * L2->elem[n];
	}
	printf("L1*L2= L3: F(X)= ");
	print(L3, L3->length);
}

4.代碼運行結果

一元多項式的相加,相減和相乘數(shù)據(jù)結構,數(shù)據(jù)結構,數(shù)據(jù)結構,c語言,c++,c#文章來源地址http://www.zghlxwxcb.cn/news/detail-789094.html

到了這里,關于數(shù)據(jù)結構中: 一元多項式的運算(相加,相減,相乘)------用C語言 / C++來實現(xiàn)。 數(shù)據(jù)結構線性表的操作和應用(順序存儲)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【數(shù)據(jù)結構】一元多項式的表示及相加

    【數(shù)據(jù)結構】一元多項式的表示及相加

    ??博客主頁: 程序員好冰 ??歡迎 【點贊?? 關注?? 收藏?? 留言??】 ??本文由 程序員好冰 原創(chuàng),CSDN 首發(fā)! ??入站時間: ??2022 年 07 月 13 日?? ?? 是非不入松風耳,花落花開只讀書。 ??推薦書籍:??《Java編程思想》,??《Java 核心技術卷》 ??參考在線編程網(wǎng)

    2024年02月11日
    瀏覽(23)
  • 題02-線性結構2 一元多項式的乘法與加法運算(C語言)

    題02-線性結構2 一元多項式的乘法與加法運算(C語言)

    設計函數(shù)分別求兩個一元多項式的乘積與和。 輸入格式: 輸入分2行,每行分別先給出多項式非零項的個數(shù),再以指數(shù)遞降方式輸入一個多項式非零項系數(shù)和指數(shù)(絕對值均為不超過1000的整數(shù))。數(shù)字間以空格分隔。 輸出格式: 輸出分2行,分別以指數(shù)遞降方式輸出乘積多項式

    2024年02月07日
    瀏覽(18)
  • 【數(shù)據(jù)結構】15 隊列應用實例:多項式加法運算

    我們準備采用不帶頭節(jié)點的單向鏈表結構表示一元多項式,并按照指數(shù)遞減的順序排列各項。 對列表存放的兩個多項式進行加法運算時,可以使用兩個指針p1和p2。初始時的p1和p2分別指向這兩個多項式第1個節(jié)點(指數(shù)的最高項)。通過循環(huán)不斷比較p1和p2所指的節(jié)點,比較結

    2024年02月21日
    瀏覽(34)
  • 【ZZULI數(shù)據(jù)結構實驗一】多項式的三則運算

    【ZZULI數(shù)據(jù)結構實驗一】多項式的三則運算

    ?? 博客主頁: 小鎮(zhèn)敲碼人 ?? 歡迎關注:??點贊 ????留言 ??收藏 ?? 任爾江湖滿血骨,我自踏雪尋梅香。 萬千浮云遮碧月,獨傲天下百堅強。 男兒應有龍騰志,蓋世一意轉洪荒。 莫使此生無痕度,終歸人間一捧黃。?????? ?? 什么?你問我答案,少年你看,下一

    2024年04月15日
    瀏覽(24)
  • 南京郵電大學數(shù)據(jù)結構實驗一(線性表的基本運算及多項式的算術運算)(代碼篇)

    小伙伴們要多多體會,不要全部借鑒哦!

    2024年02月08日
    瀏覽(29)
  • PTA 習題3.6 一元多項式的乘法與加法運算

    PTA 習題3.6 一元多項式的乘法與加法運算

    設計函數(shù)分別求兩個一元多項式的乘積與和。 輸入格式: 輸入分2行,每行分別先給出多項式非零項的個數(shù),再以指數(shù)遞降方式輸入一個多項式非零項系數(shù)和指數(shù)(絕對值均為不超過1000的整數(shù))。數(shù)字間以空格分隔。 輸出格式: 輸出分2行,分別以指數(shù)遞降方式輸出乘積多項式

    2024年02月07日
    瀏覽(23)
  • 第39關:基于鏈表的兩個一元多項式的基本運算

    第39關:基于鏈表的兩個一元多項式的基本運算

    任務描述 本關任務:給定兩個一元多項式A(x)與B(x),利用鏈表表示A(x)與B(x),實現(xiàn)A(x)與B(x)的加法、減法、乘法和求導運算。 編程要求 輸入 輸入多組數(shù)據(jù),總計n*( a+b+2)+1行。其中,第一行整數(shù)n代表總計有n組數(shù)據(jù),之后依次輸入n組數(shù)據(jù)。每組數(shù)據(jù)包括a+b+2行,其中第一行是兩

    2024年02月06日
    瀏覽(25)
  • 【鏈表應用】| 一元多項式的操作

    【鏈表應用】| 一元多項式的操作

    專欄推薦:寫文章剛剛起步,各個專欄的知識點后續(xù)會補充完善,不斷更新好文,希望大 家支持一下。 專欄 名字 Elasticsearch專欄 es spring專欄 spring開發(fā) redis專欄 redis學習筆記 項目專欄 項目集錦 修bug專欄 bug修理廠 設有兩個一元多項式: p(x)=p0+p1x+p2x2+···+pnxn q(x)=q0+q1x+q2x2+··

    2024年02月06日
    瀏覽(37)
  • 一元多項式相加問題(兩種方法)

    一元多項式相加問題(兩種方法)

    一元多項式的相加問題,主要運用了線性結構的合并,在合并線性結構的基礎上,增加判斷,所以我們可以將這個問題理解為一個復雜的線性表合并問題? 目錄 問題描述 一、順序表法 1.1 初始化并創(chuàng)建順序表 1.2 一元多項式相加算法 1.3 完整代碼 二、單鏈表法 1.1 初始化并創(chuàng)

    2024年02月06日
    瀏覽(24)
  • 一元稀疏多項式簡單計算器(C語言)含注釋

    一元稀疏多項式簡單計算器(C語言)含注釋

    問題描述 設計一個一元稀疏多項式簡單計算器 基本要求 一元稀疏多項式簡單計算器的基本功能是: (1)輸入并建立多項式; (2)輸出多項式,輸出形式為整數(shù)序列:n,c1,e1,c2,e2,……,cn,en,其中n是多項式的項數(shù),ci和ei分別是第i項的系數(shù)和指數(shù),序列按指數(shù)降序排列; (

    2024年02月08日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包