c语言系统彩色,(技巧)c也能打印彩色字

这是一个C语言实现的一元多项式加减法程序,能够读入两个多项式的系数和次数,按照指数降序排列输出多项式,并完成两个多项式的相加或相减。程序包括读入、输出和计算功能,适用于100级以内的一次多项式操作。用户通过选择功能进行加法或减法运算,结果也会以降序排列的形式显示。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

实验二  一元多项式计算**

任务:能够按照指数降序排列建立并输出多项式;

能够完成两个多项式的相加、相减,并将结果输入;

在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

源代码:

#include "stdio.h"

#include "string.h"

#include "conio.h"

#include "process.h"

#define maxpoly  100

//读入两个多项式的系数的函数,从屏幕输入,xs1用来保存第一个多项式系数,xs2用来保存第2个多项式系数,返回的是系数的最高次

int readinpoly(int *xs1,int *xs2,int *cs1,int *cs2)

{

memset(xs1,0,sizeof(xs1));

memset(xs2,0,sizeof(xs2));

int i;//分别表示次数1和次数2

printf("请输入多项式1的次数:\n");

scanf("%d",cs1);

printf("请输入多项式2的次数:\n");

scanf("%d",cs2);

if(*cs1>=maxpoly||*cs2>=maxpoly)

{

printf("对不起,你输入的次数已经超过了最大次数为99次的限制");

return -1;

}

printf("请输入多项式1的系数(从低次往高次):\n");

for(i=0;i<=*cs1;i++)

scanf("%d",xs1+i);

printf("请输入多项式2的系数(从低次往高次):\n");

for(i=0;i<=*cs2;i++)

scanf("%d",xs2+i);

return *cs1>=*cs2?*cs1:*cs2;

}

//根据系数和次数来输出多项式,xs保存的是系数,cs表示最高次数

void outputpoly(int *xs,int cs)

{

int i,j;

//    bool flag=false;

printf("\n");

for(i=0;i<=cs;i++)

if(xs)//系数不为0

{

if(i>1)//次数大于1

printf("%dx^%d",xs,i);

else//次数小于等于1

{

if(i==1)//次数为1

{

if(xs!=1)

printf("%dx",xs);

else

printf("x");

}

else//次数为0

printf("%d",xs[0]);

}

break;

}

for(j=i+1;j<=cs;j++)

if(xs[j])//系数不为0

{

if(xs[j]==1)

{

if(j>1)

printf("+x^%d",j);

if(j==1)

printf("+x",j);

}

else

{

if(j>1)

printf("+%dx^%d",xs[j],j);

if(j==1)

printf("+%dx",xs[j]);

}

}

printf("\n");

}

char welcome()

{

char choice;

system("color d");

printf("\t*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");

printf("\t|                                                        |\n");

printf("\t*                        说明                            *\n");

printf("\t|                                                        |\n");

printf("\t*  1.此代码来自南方飘雪计算机论坛,获取更多源码请登陆    *\n");

printf("\t|                                                        |\n");

printf("\t*          http://nfpx.uu1001.com                        *\n");

printf("\t|                                                        |\n");

printf("\t*  2.本程序将实现100级以内一次多项式的加减法,请选择功能:  *\n");

printf("\t|                                                        |\n");

printf("\t*          a.加法    b.减法    c.退出                    *\n");

printf("\t|                                                        |\n");

printf("\t*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");

printf("===============================================================================\n");

scanf("%c",&choice);

choice=choice

return choice;

}

//多项式相加的函数,xs1和xs2分别用来保存两个多项式的系数,maxz表示多项式的最高次数,outst用来保存结果系数,

//各个系数的次数都是从低次到高次排列

int cal(int *xs1,int *xs2,int maxz,int *outrt,char bz)

{

int i;

if(bz=='a')

for(i=0;i<=maxz;i++)//实现系数相加

outrt=xs1+xs2;

if(bz=='b')

for(i=0;i<=maxz;i++)//实现系数相加

outrt=xs1-xs2;

for(i=maxz;i>=0;i--)

if(outrt)

return i;

}

void main()

{

int xs1[maxpoly]={0};

int xs2[maxpoly]={0};

int xs3[maxpoly]={0};

int cs1,cs2,maxcs;

char choice;

choice=welcome();

if(choice!='a'&&choice!='b'&&choice!='c')

{

printf("你选择了无效键!");

getchar();

return ;

}

else

{

system("cls");

system("color a");

maxcs=readinpoly(xs1,xs2,&cs1,&cs2);

if(maxcs>0)//如果最高次数不为0

{

printf("多项式1为:");

outputpoly(xs1,cs1);

printf("多项式2为:");

outputpoly(xs2,cs2);

printf("最高次数%d\n",maxcs);

maxcs=cal(xs1,xs2,maxcs,xs3,choice);

if(choice=='a')

printf("多项式1+多项式2=:\n");

else

printf("多项式1-多项式2=:\n");

outputpoly(xs3,maxcs);

}

}

getchar();

}

源代码下载:

http://nfpx.uu1001.com/read.php?tid=59

来自南方飘雪计算机论坛.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值