欢迎来到天天文库
浏览记录
ID:56378306
大小:117.48 KB
页数:5页
时间:2020-06-22
《判定方阵的正定与负定在C语言中写法.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、判定方阵的正定与负定在C语言中写法#include#includeintinput(intn);floatcount(intn,floata[99][99]);main(){inti,j,m,h,k,l,n=0;floatx,a[99][99]={{0}};printf("这是一个判定方阵(100以内包括100)的正定与负定的程序:");while(1)/*实现多次运算*/{n=input(n);/*输入方阵阶数*/for(i=0;i2、n;j++){printf("请输入:a[%d][%d]=",i+1,j+1);scanf("%f",&x);a[i][j]=x;}}printf("输入的方阵如下:");for(i=0;i3、值*/{x=count(l+1,a);if(l%2==1){if(x>=0)i++;elsej++;}else{if(x>=0)h++;elsek++;}if(x==0)/*m确定各阶顺序主子式为零的次数*/m++;printf("方阵的%d阶顺序主子式值为:%.2f",l+1,x);}if(n%2==0)/*矩阵为偶数阶时*/{if(i==n/2&&h==n/2&&m==0)printf("该方阵为正定矩阵");elseif(j==0&&k==0&&m!=0)printf("该方阵为半正定矩阵");elseif(i==n/2&&4、k==n/2&&m==0)printf("该方阵为负定矩阵");elseprintf("该方阵为不定矩阵");}else/*矩阵为奇数阶时*/{if(i==(n-1)/2&&h==(n+1)/2&&m==0)printf("该方阵为正定矩阵");elseif(j==0&&k==0&&m!=0)printf("该方阵为半正定矩阵");elseif(i==(n-1)/2&&k==(n+1)/2&&m==0)printf("该方阵为负定矩阵");elseprintf("该方阵为不定矩阵");}printf("");}return5、0;}intinput(intn){inti;printf("请输入方阵阶数:");scanf("%d",&i);if(i<=06、7、i>100)/*确保方阵阶数输入正确*/{printf("输入错误,请重新输入!!!");i=input(i);}returni;}floatcount(intn,floata[99][99]){floatb[99][99],sum=0;/*定义数组b并初始化*/inti=0,j=0;/*i,j为行与列,sum为行列式的值*/intx=0,c=0,p=0;/*用x判断加与减,c,p为中间变量*/i8、f(n==1)returna[0][0];for(i=0;i9、1);}sum+=a[i][0]*count(n-1,b)*x;/*计算行列式的值*/}returnsum;/*将值返回*/}运行时的简单结果
2、n;j++){printf("请输入:a[%d][%d]=",i+1,j+1);scanf("%f",&x);a[i][j]=x;}}printf("输入的方阵如下:");for(i=0;i3、值*/{x=count(l+1,a);if(l%2==1){if(x>=0)i++;elsej++;}else{if(x>=0)h++;elsek++;}if(x==0)/*m确定各阶顺序主子式为零的次数*/m++;printf("方阵的%d阶顺序主子式值为:%.2f",l+1,x);}if(n%2==0)/*矩阵为偶数阶时*/{if(i==n/2&&h==n/2&&m==0)printf("该方阵为正定矩阵");elseif(j==0&&k==0&&m!=0)printf("该方阵为半正定矩阵");elseif(i==n/2&&4、k==n/2&&m==0)printf("该方阵为负定矩阵");elseprintf("该方阵为不定矩阵");}else/*矩阵为奇数阶时*/{if(i==(n-1)/2&&h==(n+1)/2&&m==0)printf("该方阵为正定矩阵");elseif(j==0&&k==0&&m!=0)printf("该方阵为半正定矩阵");elseif(i==(n-1)/2&&k==(n+1)/2&&m==0)printf("该方阵为负定矩阵");elseprintf("该方阵为不定矩阵");}printf("");}return5、0;}intinput(intn){inti;printf("请输入方阵阶数:");scanf("%d",&i);if(i<=06、7、i>100)/*确保方阵阶数输入正确*/{printf("输入错误,请重新输入!!!");i=input(i);}returni;}floatcount(intn,floata[99][99]){floatb[99][99],sum=0;/*定义数组b并初始化*/inti=0,j=0;/*i,j为行与列,sum为行列式的值*/intx=0,c=0,p=0;/*用x判断加与减,c,p为中间变量*/i8、f(n==1)returna[0][0];for(i=0;i9、1);}sum+=a[i][0]*count(n-1,b)*x;/*计算行列式的值*/}returnsum;/*将值返回*/}运行时的简单结果
3、值*/{x=count(l+1,a);if(l%2==1){if(x>=0)i++;elsej++;}else{if(x>=0)h++;elsek++;}if(x==0)/*m确定各阶顺序主子式为零的次数*/m++;printf("方阵的%d阶顺序主子式值为:%.2f",l+1,x);}if(n%2==0)/*矩阵为偶数阶时*/{if(i==n/2&&h==n/2&&m==0)printf("该方阵为正定矩阵");elseif(j==0&&k==0&&m!=0)printf("该方阵为半正定矩阵");elseif(i==n/2&&
4、k==n/2&&m==0)printf("该方阵为负定矩阵");elseprintf("该方阵为不定矩阵");}else/*矩阵为奇数阶时*/{if(i==(n-1)/2&&h==(n+1)/2&&m==0)printf("该方阵为正定矩阵");elseif(j==0&&k==0&&m!=0)printf("该方阵为半正定矩阵");elseif(i==(n-1)/2&&k==(n+1)/2&&m==0)printf("该方阵为负定矩阵");elseprintf("该方阵为不定矩阵");}printf("");}return
5、0;}intinput(intn){inti;printf("请输入方阵阶数:");scanf("%d",&i);if(i<=0
6、
7、i>100)/*确保方阵阶数输入正确*/{printf("输入错误,请重新输入!!!");i=input(i);}returni;}floatcount(intn,floata[99][99]){floatb[99][99],sum=0;/*定义数组b并初始化*/inti=0,j=0;/*i,j为行与列,sum为行列式的值*/intx=0,c=0,p=0;/*用x判断加与减,c,p为中间变量*/i
8、f(n==1)returna[0][0];for(i=0;i9、1);}sum+=a[i][0]*count(n-1,b)*x;/*计算行列式的值*/}returnsum;/*将值返回*/}运行时的简单结果
9、1);}sum+=a[i][0]*count(n-1,b)*x;/*计算行列式的值*/}returnsum;/*将值返回*/}运行时的简单结果
此文档下载收益归作者所有