24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 513  |  回复: 1

jypzhh

新虫 (初入文坛)

[求助] c语言编程

求大神帮我把下面的程序中.h和.c的文件分出来,我一分程序在visua studio2010中运行就不行了。同时求大神教我方法。谢谢了
#include<stdio.h>
#include<malloc.h>

typedef struct node{//定义节点类型
float coef;
int expn;
struct node * next;
}PLOY;

void start()//用户选择界面
{
printf("************************************\n");
printf(" 两个一元多项式的相加/相减,相乘:\n");
printf("************************************\n");
printf("请选择操作:\n");
printf("0.退出\n");
printf("1.两个一元多项式相加\n");
printf("2.两个一元多项式相乘\n");
printf("3.两个一元多项式相减\n");  
}
void insert(PLOY *head,PLOY *inpt)//查找位置插入新链节程序
{
PLOY *pre,*now;
int signal=0;
pre=head;//pre定义为现在的前一个链节
if(pre->next==NULL) {pre->next=inpt;}
else {now=pre->next;
while(signal==0)
{
if(inpt->expn<now->expn)//当新链节小于现在的连接时向后移一个链节
{
if(now->next==NULL)
{
now->next=inpt;
signal=1;
}
else
{
pre=now;
now=pre->next;
}
}
else
if(inpt->expn>now->expn)//如果发现比现在的链节大了就插入到这个连接的前面
{
inpt->next=now;
pre->next=inpt;
signal=1;
}
else
{
now->coef=now->coef+inpt->coef;
signal=1;
free(inpt);//与当前链节相等指数
if(now->coef==0)
{
pre->next=now->next;
free(now);
}
}
}
}
}

PLOY *creat(char ch)//输入多项式
{
PLOY *head,*inpt;
float x;
int y;
head=(PLOY *)malloc(sizeof(PLOY));//创建链表头
head->next=NULL;
printf("请输入一元多项式%c:(格式是:系数 指数;以0 0 结束!)\n",ch);
scanf("%f %d",&x,&y);
while(x!=0)
{
inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节
inpt->coef=x;
inpt->expn=y;
inpt->next=NULL;
insert(head,inpt);//不然就查找位置并且插入新链节
printf("请输入一元多项式%c的下一项:(以0 0 结束!)\n",ch);
scanf("%f %d",&x,&y);
}
return head;
}

PLOY *addPLOY(PLOY *head,PLOY *pre)//多项式相加
{
PLOY *inpt;
int flag=0;
while(flag==0)
{
if(pre->next==NULL)
flag=1;//当现在指向空时跳出循环
else
{
pre=pre->next;
inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节
inpt->coef=pre->coef;
inpt->expn=pre->expn;
inpt->next=NULL;
insert(head,inpt);
}//否则把当前"g(x)"的链节插入到"y(x)"中
}
return head;
}

PLOY *minusPLOY(PLOY *head,PLOY *pre)//多项式相减
{
PLOY *inpt;
int flag=0;
while(flag==0)
{
if(pre->next==NULL)
flag=1;//当现在指向空时跳出循环
else
{
pre=pre->next;
inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节
inpt->coef=0-pre->coef;
inpt->expn=pre->expn;
inpt->next=NULL;
insert(head,inpt);
}//否则把当前"g(x)"的链节插入到"y(x)"中
}
return head;
}

PLOY *byPLOY(PLOY *head1,PLOY *head2)//多项式相乘
{
PLOY *inpt,*res,*pre;
int flag=0;
res=(PLOY *)malloc(sizeof(PLOY));//创建链表头
res->next=NULL;
head1=head1->next;
pre=head2;
while(flag==0)
{
if(pre->next==NULL)
{
pre=head2;//当现在指向空时跳出循环
head1=head1->next;
continue;
}
if(head1==NULL)
{
flag=1;//当现在指向空时跳出循环
continue;
}
pre=pre->next;
inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节
inpt->coef=pre->coef*head1->coef;
inpt->expn=pre->expn+head1->expn;
inpt->next=NULL;
insert(res,inpt);//把当前"g(x)"的链节插入到"y(x)"中
}
return res;
}

void print(PLOY *fun)//输出多项式
{
PLOY *printing;
int flag=0;
printing=fun->next;//正在被打印的链节
if(fun->next==NULL)//如果函数为空打印0
{
printf("0\n");
return;
}
while(flag==0)
{
if(printing->coef>0&&fun->next!=printing)
printf("+");//为正数时打印"+"号
if(printing->coef==1);//如果为"1"就不用打印系数了
else if(printing->coef==-1)
printf("-");//如果为"-1"就打印"-"号就行了
else
printf("%f",printing->coef);//其余情况都得打印
if(printing->expn!=0) printf("x^%d",printing->expn);//如果指数为"0"不打印指数项
else if((printing->coef==1)||(printing->coef==-1))
printf("1");
if(printing->next==NULL)
flag=1;//如果现在的链节没有下一个就结束
else
printing=printing->next;
}
printf("\n");
}

void main()
{
PLOY *f,*g;
int sign=-1;//设置标志
start();
while(sign!=0)
{
scanf("%d",&sign);
switch(sign)
{
case 0:
break;//退出
case 1:
{
printf("你选择的操作是多项式相加:\n");
f=creat('f');//输入多项式f(x)
printf("f(x)=");
print(f);
g=creat('g');//输入多项式g(x)
printf("g(x)=");
print(g);
printf("F(x)=f(x)+g(x)=");
f=addPLOY(f,g);//两个多项式相加
print(f);
sign=-1;//复位标志
start();//回复用户选择界面
break;
}
case 2:
{
printf("你选择的操作是多项式相乘:\n");
f=creat('f');//输入多项式f(x)
printf("f(x)=");
print(f);
g=creat('g');//输入多项式g(x)
printf("g(x)=");
print(g);
printf("F(x)=f(x)*g(x)=");
f=byPLOY(f,g);//两个多项式相加
print(f);
sign=-1;//复位标志
start();//回复用户选择界面
break;
}
case 3:
{
printf("你选择的操作是多项式相减:\n");
f=creat('f');//输入多项式f(x)
printf("f(x)=");
print(f);
g=creat('g');//输入多项式g(x)
printf("g(x)=");
print(g);
printf("F(x)=f(x)-g(x)=");
f=byPLOY(f,g);//两个多项式相加
print(f);
sign=-1;//复位标志
start();//回复用户选择界面
break;
}

default:
{
printf("输入有误!请重新选择操作!\n");//选择错误,返回选择界面
start();
break;
}
}
}
}
回复此楼

» 猜你喜欢

学自己感兴趣的电子
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
把2个#include和struct node拿到h文件,
然后所有函数(除main外)第一行复制到h文件加分号,
剩下的作为c文件,在第一行写上#include "你的h文件名.h" (注意这个h要和c放在同一个文件夹下)
编译运行就可以了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-05-08 16:06:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jypzhh 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] chinese chemical letters英文版投稿求助 120+4 Yishengeryi 2026-03-30 6/300 2026-04-02 17:19 by Yishengeryi
[考研] 一志愿郑大材料工程290求调剂 +20 Youth_ 2026-03-30 20/1000 2026-04-02 14:48 by 5896
[考研] 070305高分子化学与物理 304分求调剂 +14 c297914 2026-03-28 14/700 2026-04-02 09:35 by 星空星月
[考研] 085602化学工程268分蹲调剂 +8 月照花林。 2026-04-01 8/400 2026-04-01 22:08 by 无际的草原
[考研] 339求调剂,想调回江苏 +7 烤麦芽 2026-03-27 10/500 2026-04-01 21:35 by 495374996
[考研] 266分求材料化工冶金矿业等专业的调剂 +7 哇呼哼呼哼 2026-03-26 7/350 2026-04-01 20:47 by cqupH
[考研] 材料科学与工程339求调剂 +11 hyz0119 2026-03-31 12/600 2026-04-01 18:40 by 伟大河北
[考研] 086502化学工程342求调剂 +7 阿姨复古不过 2026-03-27 7/350 2026-04-01 16:14 by yanflower7133
[考研] 311求调剂 +10 李芷新1 2026-03-31 10/500 2026-04-01 14:38 by chenqifeng666
[考研] 085410人工智能 初试316分 求调剂 +3 残星拂曙 2026-03-31 3/150 2026-04-01 11:09 by 小熊raider
[考研] 0855机械初试280求调剂 +3 kazenotori 2026-03-31 3/150 2026-04-01 10:08 by JourneyLucky
[考研] 358求调剂 +3 王向阳花 2026-03-31 3/150 2026-04-01 09:56 by zzchen2000
[考研] 求调剂:一志愿:南京大学 专业:0705 总分320 ,本科985,四六级已过 +3 lfy760306 2026-03-31 3/150 2026-04-01 01:57 by Creta
[考研] 一志愿:西北大学,英一数一408-284分求调剂 +7 12.27 2026-03-27 7/350 2026-03-31 21:59 by lbsjt
[考研] 254材料与化工求调剂 +3 翰冬林楠 2026-03-30 4/200 2026-03-31 17:53 by yishunmin
[考研] 277跪求调剂 +8 1915668 2026-03-27 13/650 2026-03-31 14:58 by 王亮_大连医科大
[考研] 0703化学 +20 妮妮ninicgb 2026-03-27 20/1000 2026-03-31 13:33 by 无际的草原
[考研] 083000学硕274求调剂 +12 Li李鱼 2026-03-26 12/600 2026-03-31 10:01 by cal0306
[考研] 298求调剂 +3 种圣赐 2026-03-29 3/150 2026-03-29 12:06 by longlotian
[考研] 本科双非材料,跨考一志愿华电085801电气,283求调剂,任何专业都可以 +6 芝士雪baoo 2026-03-28 8/400 2026-03-29 08:16 by 松花缸1201
信息提示
请填处理意见