糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 离散数学的行列式计算器(自动给出 解!题!步!骤!和答案)(基于c语言)

离散数学的行列式计算器(自动给出 解!题!步!骤!和答案)(基于c语言)

时间:2024-07-26 00:13:53

相关推荐

离散数学的行列式计算器(自动给出  解!题!步!骤!和答案)(基于c语言)

emmmmmmmmmmmmm

额,这估计是一篇丑陋的博客,因为我没有区分任何的标题

并且没有使用任何的高亮来处理自己的代码

代码本身也写得很丑陋,可能是因为我不在状态吧。。。。。

#include<stdio.h>struct juz{//自定义了分数的数据类型int a;//分子int b; //分母};juz Juz[12][12],Juz_T; //用来存放行列式的二位结构体数组int n;void YueF_All(){//自定义函数全局约分(可以一次性约分已经输入的所有数)for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(Juz[i][j].a<0&&Juz[i][j].b<0||Juz[i][j].a>0&&Juz[i][j].b<0){Juz[i][j].a*=-1;Juz[i][j].b*=-1;}int x=Juz[i][j].a;int y=Juz[i][j].b;while(y){int t=x%y;x=y;y=t;}Juz[i][j].a/=x;Juz[i][j].b/=x;}}}void YueF(int i,int j){//自定义函数单个约分(只需要传入数据的坐标就ok)if(Juz[i][j].a<0&&Juz[i][j].b<0||Juz[i][j].a>0&&Juz[i][j].b<0){Juz[i][j].a*=-1;Juz[i][j].b*=-1;}int x=Juz[i][j].a;int y=Juz[i][j].b;while(y){int t=x%y;x=y;y=t;}Juz[i][j].a/=x;Juz[i][j].b/=x;}juz jian(int x,int y,int a,int b){//减法函数,返回z[x][y]-z[a][b]的值int x_=Juz[x][y].a;int y_=Juz[x][y].b;int a_=Juz[a][b].a;int b_=Juz[a][b].b;a_*=y_;x_*=b_;y_*=b_;x_-=a_;Juz_T.a=x_;Juz_T.b=y_;return Juz_T;}juz Ride(int x,int y,int a,int b){// =xy*ab 返回z[x][y]*z[a][b]的值int x_=Juz[x][y].a;int y_=Juz[x][y].b;int a_=Juz[a][b].a;int b_=Juz[a][b].b;Juz_T.a=x_*a_;Juz_T.b=y_*b_;return Juz_T; }juz Div(int x,int y,int a,int b){// =xy/ab 返回z[x][y]/z[a][b]的值int x_=Juz[x][y].a;int y_=Juz[x][y].b;int a_=Juz[a][b].a;int b_=Juz[a][b].b;Juz_T.a=x_*b_;Juz_T.b=y_*a_;return Juz_T;}int main(){//这是我处理得比较糟糕的部分,算法的实现被我一团糟的写到了主函数的部分。printf("ÑùÀýÊäÈ룺\n");printf("3\n");printf("1 -1 2\n");printf("5 6 7\n");printf("4 -1 2\n");printf("\n");while(1){scanf("%d",&n);for(int i=0;i<n;i++){for(int j=0;j<n;j++){scanf("%d",&Juz[i][j].a);Juz[i][j].b=1;}}int T=n;for(int i=1;i<T;i++){for(int j=i;j<T;j++){if(Juz[j][i-1].a){Juz[10][10]=Div(j,i-1,i-1,i-1);//»ñÈ¡ÐÐÁÐʽ±¶ÂÊfor(int k=1;k<=T;k++){Juz[11][11]=Ride(10,10,i-1,k-1);Juz[j][k-1]=jian(j,k-1,11,11);}YueF_All();YueF(10,10);YueF(11,11);if(Juz[10][10].b==1){if(Juz[10][10].a<0)printf("\nC%d+%d*C%d\n",j+1,-Juz[10][10].a,i);elseprintf("\nC%d-%d*C%d\n",j+1,Juz[10][10].a,i);}else{if(Juz[10][10].a<0)printf("\nC%d+%d/%d*C%d\n",j+1,-Juz[10][10].a,Juz[10][10].b,i);elseprintf("\nC%d-%d/%d*C%d\n",j+1,Juz[10][10].a,Juz[10][10].b,i);}for(int q=0;q<n;q++){for(int w=0;w<n;w++){if(Juz[q][w].b==1)printf(" %d",Juz[q][w].a);elseprintf(" %d/%d",Juz[q][w].a,Juz[q][w].b);}printf("\n\n");}}}}Juz[10][10].a=1;Juz[10][10].b=1; for(int p=0;p<n;p++){Juz[10][10]=Ride(10,10,p,p);}YueF(10,10);if(Juz[10][10].b==1)printf("´ð°¸ÊÇ£º%d",Juz[10][10].a);elseprintf("´ð°¸ÊÇ£º%d/%d",Juz[10][10].a,Juz[10][10].b);}return 0;}

如果觉得《离散数学的行列式计算器(自动给出 解!题!步!骤!和答案)(基于c语言)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。