当前位置:首页 » 编程语言 » 数据结构c语言版实验报告

数据结构c语言版实验报告

发布时间: 2022-08-12 20:51:33

❶ 关于数据结构的实验报告

#include <stdio.h>
#include <string.h>
#include <math.h>
typedef int Length;
typedef struct {
int x;
int y;
}coordinate;

typedef struct cityInfo {
char cityName[10];
coordinate cityCoor;
struct cityInfo* next;
}citylink;
void addCity(citylink*);
void insertCity(citylink*);
void delCity(citylink);
void amendCity(char*);
void list(void);
void coordinateSureCityname(void);
void nearerCity(coordinate,Length);
void shortestCitys(void);

citylink *head;
citylink *end;

void addCity(citylink* newCity)
{
end-> next = newCity;
end = newCity;
newCity-> next = NULL;
}
void insertCity(citylink* newcity)
{
int number,i;
citylink *p,*q;
p = head;
printf( "insert where\n ");
scanf( "%d ",&number);
for(i = 1;i < number;i++)
{
p = p-> next;
}
q = p-> next;
p-> next = newcity;
newcity-> next = q;
}
void delCity()
{
int number,i;
citylink *p;

p = head;
printf( "please input the number of city you want to del\n ");
scanf( "%d ",&number);
if(1 == number)
{
head = head-> next;
}
for(i = 2;i < number;i++)
{
p = p-> next;
}
p-> next = p-> next-> next;
}
void amendCity()
{
int x,y,result;
citylink *p;
char cityName[10];

printf( "please in put city ’s old name\n ");
scanf( "%s ",cityName);
fflush(stdin);

p = head;
while (p)
{
result = strcmp(p-> cityName,cityName);
if (0 == result)
{
printf( "please input city ’s new name!!\n ");
scanf( "%s ",&p-> cityName);
fflush(stdin);
printf( "please input city ’s new coordinate like this 88,99!!\n ");
scanf( "%d,%d ",&x,&y);
p-> cityCoor.x = x;
p-> cityCoor.y = y;
break;
}
p = p-> next;
}
if (result != 0)
{
printf( "There have not this city ");
}
}
void coordinateSureCityname(void)
{
int result;
citylink *p;
char cityName[10];
p = head;

printf( "please in put city ’s name\n ");
scanf( "%s ",cityName);
fflush(stdin);

while (p)
{
result = strcmp(p-> cityName,cityName);
if (0 == result)
{
printf( "city ’s coordinate is %d,%d ",p-> cityCoor.x,p-> cityCoor.y);
}
p = p-> next;
}
if (result != 0)
{
printf( "There has not such city ");
}
}

void nearerCity()
{
citylink* p;
int temp,x,y;
coordinate coord;
int Length;
printf( "please input coordinate like this 88,99\n ");
scanf( "%d,%d ",&x,&y);
coord.x = x;
coord.y = y;
fflush(stdin);

printf( "please input length\n ");
scanf( "%d ",&Length);

p = head;
while(p)
{
temp = sqrt(pow((coord.x - p-> cityCoor.x),2) + pow((coord.y - p-> cityCoor.y),2));
if (temp < Length)
{
printf( "city name : %s\n ",p-> cityName);
}
p = p-> next;
}
}

void list(void)
{
citylink *p;
p = head;
while(p)
{
printf( "city ’s name = %s,citys coordinate = %d , %d\n ",p-> cityName,p-> cityCoor.x,p-> cityCoor.y);
p = p-> next;
}
}

void main(void)
{
citylink city1;
citylink city2;
citylink city3;
citylink city4;
citylink city5;
citylink city6;
citylink city7
head = &city1;
city1.cityCoor.x = 12;
city1.cityCoor.y = 22;
strcpy(city1.cityName, "city1 " );
city1.next = &city2;

city2.cityCoor.x = 28;
city2.cityCoor.y = 95;
strcpy(city2.cityName, "city2 " );
city2.next = &city3;

city3.cityCoor.x = 32;
city3.cityCoor.y = 17;
strcpy(city3.cityName, "city3 " );
city3.next = &city4;

city4.cityCoor.x = 58;
city4.cityCoor.y = 98;
strcpy(city4.cityName, "city4 " );
city4.next = &city5;

city5.cityCoor.x = 31;
city5.cityCoor.y = 67;
strcpy(city5.cityName, "city5 " );
city5.next = &city6;

city6.cityCoor.x = 21;
city6.cityCoor.y = 99;
strcpy(city6.cityName, "city6 " );
city6.next = NULL;

head = &city1;
end = &city6;

city7.cityCoor.x = 19;
city7.cityCoor.y = 84;
strcpy(city7.cityName, "city7 " );

list();
printf( "\n ");
}

满意请采纳。

❷ 求助:数据结构实验报告(c语言版)

/* 标准文档模板 */

#include "Stdio.h"
#include "Conio.h"
#define SIZE 50
struct student
{
int ID;
char name[20];
int score[3];//三门课的成绩
float avg;
};
int count=4; //用来记录总条数 因为已有四条记录所以初始化为4,再录入记录时从第四条开始记录
void input(struct student stu[]) /*实现信息录入功能*/
{
int i;
int sum; //总分
char ch;
do
{
sum=0;
printf("请输入学生ID:\n");
scanf("%d",&stu[count].ID);
printf("请输入学生name:\n");
scanf("%s",&stu[count].name);
for(i=0;i<3;i++)
{
printf("请输入第%d门成绩",i+1);
scanf("%d",&stu[count].score[i]);
sum=sum+stu[count].score[i];//计算总分
}
stu[count].avg=sum/3.0f; //计算平均分
count++; //累计总记录条数
printf("是否继续录入信息?(y/n)");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');
}
void view(struct student stu[]) /*实现信息浏览功能*/
{
int i;
printf("\nID \tNAME \t\tSTB\tC语言\tSQL\tAVG\n");
for(i=0;i<count;i++)
{
printf("%d\t%-15.7s %d\t%d\t%d\t%-.2f\n",stu[i].ID,stu[i].name,stu[i].score[0],
stu[i].score[1],stu[i].score[2],stu[i].avg);
}
}

void sort_ID(struct student stu[]) //按学号进行排序
{
int i,j;
struct student temp;//定义结构体变量来实现整条记录交换
for(i=0;i<count-1;i++) //选择排序法进行排序
{
for(j=i+1;j<count;j++)
{
if(stu[i].ID<stu[j].ID)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
view(stu);
}
void sort_Name(struct student stu[]) //按姓名进行排序
{
int i,j;
struct student temp;
for(i=0;i<count-1;i++)//选择排序法进行排序
{
for(j=i+1;j<count;j++)
{
if(strcmp(stu[i].name,stu[j].name)>0) //用strcmp比较名字的大小
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
view(stu);
}
void sort_Avg(struct student stu[]) //按平均分大小进行排序
{
int i,j;
struct student temp;//定义结构体变量来实现整条记录交换
for(i=0;i<count-1;i++) //选择排序法进行排序
{
for(j=i+1;j<count;j++)
{
if(stu[i].avg<stu[j].avg)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
view(stu);
}
void sort(struct student stu[])
{
int option;
do
{
printf("\n========1.按学号排序==========2.按姓名排序=======\n");
printf("\n========3.按平均分排序========0.退出=============\n");
printf("请选择:\n");
scanf("%d",&option);
switch(option)
{
case 0:printf("谢谢!");break;
case 1:sort_ID(stu);break;
case 2:sort_Name(stu);break;
case 3:sort_Avg(stu);break;
default:printf("请重新选择!"); break;
}
}while(option!=0);
}
/* 按学号查询*/
void findID(struct student stu[])
{
int tempID;//要查找的临时学号
char flag='n'; //默认没有找到状态
int i;
printf("请输入要查询的学号:");
scanf("%d",&tempID);
printf("\n\t 学号 \t姓名\tSTB \tC成绩\tSQL成绩 平均分\n");
for(i=0;i<count;i++)
{
if(tempID==stu[i].ID) //找到
{
printf("\t%d\t%s\t%d\t%d\t%df\t%-.2f\n",stu[i].ID,stu[i].name,
stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg);
flag='y'; //找到的状态

}

}
if(flag!='y')
printf("找不到学号是%d的记录\n",tempID);

}
/* 按姓名查询*/
void findName(struct student stu[])
{
char tempName[15]; //要查找的临时姓名
int flag=0; //默认没有找到状态
int i;
printf("请输入要查询的姓名:");
fflush(stdin);
scanf("%s",tempName);
printf("\n\t 学号 \t姓名\tSTB \tC成绩\tSQL成绩 平均分\n");
for(i=0;i<count;i++)
{
if(strcmp(tempName,stu[i].name)==0) //找到
{
printf("\t%d\t%s\t%d\t%df\t%df\t%-.2f\n",stu[i].ID,stu[i].name,
stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg);
flag=1; //找到的状态

}

}
if(flag!=1)
printf("找不到姓名是%s的记录\n",tempName);

}
/* 按学号,姓名,平均分查询 */
void find(struct student stu[])
{
int option;
printf("\n********************************************************\n");
printf("\n****** 1. 退出 2.按学号 3.按姓名 ****************\n");
printf("\n********************************************************\n");
printf("请选择: ");
scanf("%d",&option);
switch(option)
{
case 1: break;
case 2: findID(stu);break;
case 3: findName(stu);break;
default: printf("选项无效!! \n");break;
}
}
int main(void)
{
/* 此处添加你自己的代码 */
struct student stu[SIZE]={{1002,"LiLan",70,80,90,80},{1004,"WangHai",75,85,95,85},
{1003,"LiYang",60,80,73,81},{1001,"JackChen",95,90,100,95}}; //初始化四条信息
int option;
do
{
printf("\n======0.退出===========1.信息录入==========2.信息浏览=====\n");
printf("\n======3.信息排序========4.信息查询========================\n");
printf("请选择:\n");
scanf("%d",&option);
switch(option)
{
case 0:printf("欢迎下次再使用!");break;
case 1:input(stu);break;
case 2:view(stu);break;
case 3:sort(stu);break;
case 4:find(stu);break;
default:printf("请重新选择!");
}
}while(option!=0);
getch();
return 0;
}

❸ 数据结构 我要写的实验报告

这么简单的作业都不自己做···
还要悬赏0分的···

❹ 数据结构题集 c语言版 第一章实验报告怎么写

清华严蔚敏的数据结构(C语言版)习题答案网上很多免费提供下载的,有免费的不用为什么要买呢……?呵呵
这里有免费下的:

=============================================================
职称论文写作和发表,诚信迅捷,负责到底,有意者加用户名!

❺ c语言程序设计实验报告

五、 课程设计小结心得体会
1设计思想
1)、设定一个一维数组,可先按员工序号设定每位员工的工资
2)、利用While语句和Prinft语句完成用户菜单的设计
功能为:第1项 设为员工编号和工资数据
第2项 设为修改员工工资数据
第3项 设为查询员工工资数据
第4项 设为结束系统
3)、当用户选择1、2项时,需输入员工编号,所以需要设计编号校正功能,如果出错可输出“The error employe number”
4)、当选择2时,进行工资数据的修改,并将新数据存回该员工的工资数组中
5)、利用for循环中判断语句,将用户工资数与数组中的工资数进行比较,如相同则输出,将计数器加1,如此下去,直到把整个数组遍历一遍
6)、判断计数器是否为0, 是0表示找不到相符的工资,如果不为0,则输出共查出几比相符的工资
以上当然里面也涉及了“函数的模块化”理念,可以避免但需要重复打印头文件时重复编写打印信头的语句。像这样的程序是多见的,这样不但降低了程序还发效率,而且耗时浪费资源“共用体”的使用简化了程序的“复杂”性,正如(4)中,学号与姓名同时表示一个人,但在函数使用了“共用体”,从而程序的简单可以便于纠错,查找问题,避免了代码的重复,这样就给编译时带来了一定的难度与“量”的繁杂。一般不采取这样的做法,力求“简单、明了、清晰”。

❻ 数据结构完整版实验报告

(一)实验目的和要求
实验目的:熟练掌握线性表的基本操作在顺序存储结构上的实现。
实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。

(二)实验主要内容
1. 建立n个元素的顺序表SqList,实现顺序表的基本操作;
2. 在SqList的元素i之后插入一个元素,实现顺序表插入的基本操作;
3. 在sqList中删除指定位置i上的元素,实现顺序表删除的操作。
4.
(三)主要仪器设备
PC机,Windows XP操作平台,Visual C++

(四)实验原理
顺序表操作:定义一个顺序表类,该类包括顺序表的存储空间、存储容量和长度,以及构造、插入、删除、遍历等操作的方法

(五)实验步骤与调试分析:
顺序表操作:先构造有四个数据的顺序表,在第4个位置插入9,再读取并删除第3个元素。

(六)实验结果与分析:
顺序表操作:

(七)附录(源程序):
#include<iostream>
using namespace std;

const int LIST_INIT_SIZE=10; //顺序表初始长度
const int LISTINCREMENT=5; //顺序表长度增值
class SqList
{
int *L; //定义存储空间起始地址
int length; //顺序表当前长度
int listsize; //顺序表当前存储容量
bool flag; //设立标志值记录操作成败
public:
SqList(int v1,int v2,int v3,int v4); //构造函数构造并初始化顺序表
void ListInsert(int i,int e); //实现将e插入到顺序表中第i个位置
void ListDelete(int i,int &e); //实现删除顺序表第i个元素
void ListVisit(); //实现顺序表的遍历
};
SqList::SqList(int v1,int v2,int v3,int v4) //构造并初始化顺序表
{
L=new int[LIST_INIT_SIZE];
if(!L) //分配失败
{
flag=false;
cout<<"ERROR"<<endl;
}
else //分配成功,进行初始化
{
*L=v1;
*(L+1)=v2;
*(L+2)=v3;
*(L+3)=v4;
length=4;
listsize=LIST_INIT_SIZE;
flag=true;
}
}
void SqList::ListInsert(int i,int e) //插入元素
{
int *p,*q;
int t;
if(i<1||i>length+1) cout<<"ERROR"<<endl; //插入位置错误
else
{
if(length==listsize) //空间不足,增加分配
{
p=new int[listsize+LISTINCREMENT];
if(!p) cout<<"ERROR"<<endl; //分配失败
else //分配成功,复制顺序表
{
for(t=0;t<length;t++)
*(p+t)=*(L+t);
q=L;L=p;p=q;
delete q;
listsize+=LISTINCREMENT;
}
}
for(t=length;t>=i;t--)
*(L+length)=*(L+length-1);
*(L+i-1)=e;
length++; //插入成功,表长加1
}
}
void SqList::ListDelete(int i,int &e)
{
if(i<1||i>length) cout<<"ERROR"<<endl; //删除位置错误
else
{
e=*(L+i-1);
while(i<length)
{
*(L+i-1)=*(L+i);
i++;
}
length--; //删除成功表长减1
}
}
void SqList::ListVisit() //遍历
{
int i;
for(i=0;i<length;i++)
cout<<" "<<*(L+i);
cout<<endl;
}

int main()
{
int e=0;
SqList list(2,3,4,5);
list.ListVisit();
list.ListInsert(4,9);
list.ListVisit();
list.ListDelete(3,e);
list.ListVisit();
cout<<"e="<<e<<endl;
return 0;
}

❼ 急求c语言数据结构简单计算器实验报告!!!

似乎不全面啊!
当年上学的时候编过,优先级比较没这么简单!

❽ C语言实验报告

我写了个,不知道行不,有什么不妥的请指出哈,如要格式请加我,将之发给你
四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
学号: 姓名: 专业:计算机科学与技术 班级:5 第 13 周
课程名称 c/C++ 实验课时 2
实验项目 字符串的复制与追加 实验时间 08.5. 16
实验目的 1.掌握字符串的基本操作和理解数据结构

实验环境 VC 6.0
实验内容(算法、程序、步骤和方法) 先计算出S1和S2的字符个数,为S3分配好空间,利用已有库函数先将S1复制到S3中,再将S2追加到S3中,当显示完后要记住收回空间,做好善后处理。
源代码如下:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char *s1="abcdef";
char *s2="123456f";
int n=strlen(s1)+strlen(s2);//计算s1,和s2的总长度n
char *s3=new char[n+1]; //定义S3并分配空间大小为n
strcpy(s3,s1); //将s1复制到s3中
strcat(s3,s2); //将s2追加到s3后面
cout<<"s3="<<s3<<endl;
delete []s3; //收回空间
s3=NULL; //将指针指向空
return 0;
}

(接上)
实验内容(算法、程序、步骤和方法)

结构是顺序存储结构,算法顺序链接法
数据记录
和计算 数据有:字符串S1 ,S2;和一未知字符串S3
只需计算前两个字符串长度之和

结 论
(结 果) 利用字符数组可以顺序存储字符数据,并且能够顺序处理数据;
算法复杂度O(n+m);处于中性
小 结 字符数组能够带来很好的存储结构,便于操作,但是算法不是很好,只能顺序遍历数组,故复杂度不是很小
指导老师评 议

成绩评定: 指导教师签名:

❾ 数据结构实验报告(c语言版)。急急急!!!

除以上功能外,还有乘法和除法的计算和导数计算呢。
这是我以前做的数据结构课程设计。希望能帮上你的忙。

#include<stdio.h>
#include<malloc.h>
typedef struct Polynomial{
float coef;
int expn;
struct Polynomial *next;
}*Polyn,Polynomial; //Polyn为结点指针类型
void Insert(Polyn p,Polyn h){
if(p->coef==0) free(p); //系数为0的话释放结点
else{
Polyn q1,q2;
q1=h;q2=h->next;
while(q2&&p->expn<q2->expn){ //查找插入位置
q1=q2;
q2=q2->next;
}
if(q2&&p->expn==q2->expn){ //将指数相同相合并
q2->coef+=p->coef;
free(p);
if(!q2->coef){ //系数为0的话释放结点
q1->next=q2->next;
free(q2);
}
}
else{ //指数为新时将结点插入
p->next=q2;
q1->next=p;
}
}
}//Insert
Polyn CreatePolyn(Polyn head,int m){//建立一个头指针为head、项数为m的一元多项式
int i;
Polyn p;
p=head=(Polyn)malloc(sizeof(struct Polynomial));
head->next=NULL;
for(i=0;i<m;i++){
p=(Polyn)malloc(sizeof(struct Polynomial));//建立新结点以接收数据
printf("请输入第%d项的系数与指数:",i+1);
scanf("%f %d",&p->coef,&p->expn);
Insert(p,head); //调用Insert函数插入结点
}
return head;
}//CreatePolyn
void DestroyPolyn(Polyn p){//销毁多项式p
Polyn q1,q2;
q1=p->next;
q2=q1->next;
while(q1->next){
free(q1);
q1=q2;//指针后移
q2=q2->next;
}
}
void PrintPolyn(Polyn P){
Polyn q=P->next;
int flag=1;//项数计数器
if(!q) { //若多项式为空,输出0
putchar('0');
printf("\n");
return;
}
while (q){
if(q->coef>0&&flag!=1) putchar('+'); //系数大于0且不是第一项
if(q->coef!=1&&q->coef!=-1){//系数非1或-1的普通情况
printf("%g",q->coef);
if(q->expn==1) putchar('X');
else if(q->expn) printf("X^%d",q->expn);
}
else{
if(q->coef==1){
if(!q->expn) putchar('1');
else if(q->expn==1) putchar('X');
else printf("X^%d",q->expn);
}
if(q->coef==-1){
if(!q->expn) printf("-1");
else if(q->expn==1) printf("-X");
else printf("-X^%d",q->expn);
}
}
q=q->next;
flag++;
}//while
printf("\n");
}//PrintPolyn
int compare(Polyn a,Polyn b){
if(a&&b){
if(!b||a->expn>b->expn) return 1;
else if(!a||a->expn<b->expn) return -1;
else return 0;
}
else if(!a&&b) return -1;//a多项式已空,但b多项式非空
else return 1;//b多项式已空,但a多项式非空
}//compare
Polyn AddPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针
Polyn qa=pa->next;
Polyn qb=pb->next;
Polyn headc,hc,qc;
hc=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点
hc->next=NULL;
headc=hc;
while(qa||qb){
qc=(Polyn)malloc(sizeof(struct Polynomial));
switch(compare(qa,qb)){
case 1:
{
qc->coef=qa->coef;
qc->expn=qa->expn;
qa=qa->next;
break;
}
case 0:
{
qc->coef=qa->coef+qb->coef;
qc->expn=qa->expn;
qa=qa->next;
qb=qb->next;
break;
}
case -1:
{
qc->coef=qb->coef;
qc->expn=qb->expn;
qb=qb->next;
break;
}
}//switch
if(qc->coef!=0){
qc->next=hc->next;
hc->next=qc;
hc=qc;
}
else free(qc);//当相加系数为0时,释放该结点
}//while
return headc;
}//AddPolyn
Polyn SubtractPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针
Polyn h=pb;
Polyn p=pb->next;
Polyn pd;
while(p){ //将pb的系数取反
p->coef*=-1;
p=p->next;
}
pd=AddPolyn(pa,h);
for(p=h->next;p;p=p->next) //恢复pb的系数
p->coef*=-1;
return pd;
}//SubtractPolyn
float ValuePolyn(Polyn head,float x){//输入x值,计算并返回多项式的值
Polyn p;
int i;
float sum=0,t;
for(p=head->next;p;p=p->next){
t=1;
for(i=p->expn;i!=0;){
if(i<0){t/=x;i++;}//指数小于0,进行除法
else{t*=x;i--;}//指数大于0,进行乘法
}
sum+=p->coef*t;
}
return sum;
}//ValuePolyn
Polyn Derivative(Polyn head){//求解并建立a的导函数多项式,并返回其头指针
Polyn q=head->next,p1,p2,hd;
hd=p1=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点
hd->next=NULL;
while(q){
if(q->expn!=0){ //该项不是常数项时
p2=(Polyn)malloc(sizeof(struct Polynomial));
p2->coef=q->coef*q->expn;
p2->expn=q->expn-1;
p2->next=p1->next;//连接结点
p1->next=p2;
p1=p2;
}
q=q->next;
}
return hd;
}//Dervative
Polyn MultiplyPolyn(Polyn pa,Polyn pb){//求解并建立多项式a*b,返回其头指针
Polyn hf,pf;
Polyn qa=pa->next;
Polyn qb=pb->next;
hf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点
hf->next=NULL;
for(;qa;qa=qa->next){
for(qb=pb->next;qb;qb=qb->next){
pf=(Polyn)malloc(sizeof(struct Polynomial));
pf->coef=qa->coef*qb->coef;
pf->expn=qa->expn+qb->expn;
Insert(pf,hf);//调用Insert函数以合并指数相同的项
}
}
return hf;
}//MultiplyPolyn
void DevicePolyn(Polyn pa,Polyn pb){//求解并建立多项式a*b,返回其头指针
Polyn hf,pf,af,temp1,temp2,q;
Polyn qa=pa->next;
Polyn qb=pb->next;
hf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点,存储商
hf->next=NULL;
pf=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点,存储余数
pf->next=NULL;
temp1=(Polyn)malloc(sizeof(struct Polynomial));
temp1->next=NULL;
temp2=(Polyn)malloc(sizeof(struct Polynomial));
temp2->next=NULL;
temp1=AddPolyn(temp1,pa);
while(qa!=NULL&&qa->expn>=qb->expn){
temp2->next=(Polyn)malloc(sizeof(struct Polynomial));
temp2->next->coef=(qa->coef)/(qb->coef);
temp2->next->expn=(qa->expn)-(qb->expn);
Insert(temp2->next,hf);
pa=SubtractPolyn(pa,MultiplyPolyn(pb,temp2));
qa=pa->next;
temp2->next=NULL;
}
pf=SubtractPolyn(temp1,MultiplyPolyn(hf,pb));
pb=temp1;
printf("商是:");
PrintPolyn(hf);
printf("余数是:");
PrintPolyn(pf);
}//DevicePolyn

int main(){
int m,n,flag=0;
float x;
Polyn pa=0,pb=0,pc,pd,pe,pf;//定义各式的头指针,pa与pb在使用前付初值NULL
printf("请输入a的项数:");
scanf("%d",&m);
pa=CreatePolyn(pa,m);//建立多项式a
printf("请输入b的项数:");
scanf("%d",&n);
pb=CreatePolyn(pb,n);//建立多项式a
//输出菜单
printf("**********************************************\n");
printf("操作提示:\n\t1.输出多项式a和b\n\t2.建立多项式a+b\n\t3.建立多项式a-b\n");
printf("\t4.计算多项式a在x处的值\n\t5.求多项式a的导函数\n\t6.建立多项式a*b\n");
printf("\t7.建立多项式a/b\n\t8.退出\n**********************************************\n");
for(;;flag=0){
printf("执行操作");
scanf("%d",&flag);
if(flag==1){
printf("多项式a:");PrintPolyn(pa);
printf("多项式b:");PrintPolyn(pb);continue;
}
if(flag==2){
pc=AddPolyn(pa,pb);
printf("多项式a+b:");PrintPolyn(pc);
DestroyPolyn(pc);continue;
}
if(flag==3){
pd=SubtractPolyn(pa,pb);
printf("多项式a-b:");PrintPolyn(pd);
DestroyPolyn(pd);continue;
}
if(flag==4){
printf("输入x的值:x=");
scanf("%f",&x);
printf("多项式a的值%g\n",ValuePolyn(pa,x));continue;
}
if(flag==5){
pe=Derivative(pa);
printf("多项式a的导函数:");PrintPolyn(pe);
DestroyPolyn(pe);continue;
}
if(flag==6){
pf=MultiplyPolyn(pa,pb);
printf("多项式a*b:");PrintPolyn(pf);
DestroyPolyn(pf);continue;
}
if(flag==7){
DevicePolyn(pa,pb);
continue;
}
if(flag==8) break;
if(flag<1||flag>8) printf("Error!!!\n");continue;
}//for
DestroyPolyn(pa);
DestroyPolyn(pb);
return 0;
}

热点内容
美嘉算法口诀 发布:2025-05-16 06:03:15 浏览:952
c程序编译连接 发布:2025-05-16 06:02:36 浏览:964
脚本魔兽 发布:2025-05-16 06:01:52 浏览:330
文件夹python 发布:2025-05-16 06:01:43 浏览:627
电脑我的世界服务器游戏币 发布:2025-05-16 05:27:25 浏览:488
索尼手机为什么不能用安卓10 发布:2025-05-16 05:18:46 浏览:784
蔚来es6选择哪些配置实用 发布:2025-05-16 05:18:05 浏览:130
小米如何扫码wifi密码 发布:2025-05-16 05:13:38 浏览:807
楼层密码是什么意思 发布:2025-05-16 05:13:37 浏览:13
创建文件夹失败 发布:2025-05-16 05:12:59 浏览:396