#include<>#include<>#include<>floatmatrix[100][100],x[100];/*记录总方程的数组,解的数组*/inta[100];/*记录基础,非基础的解的情况,0:非基础,1:基础*/intm,n,s,type;/*方程变量,约束数,求最大最小值的类型,0:最小1:最大*/intindexe,indexl,indexg;/*剩余变量,松弛变量,人工变量*/voidJckxj()/*basicfeasiblesolution*/{inti,j;for(i=0;i<n;i++)for(j=0;j<s;j++)if(matrix[i][j]==1&&a[j]==1){x[j]=matrix[i][s];j=s;}for(i=0;i<s;i++)if(a[i]==0)x[i]=0;}intRj(){inti;for(i=0;i<s;i++)if(fabs(matrix[n][i])>=)if(matrix[n][i]<0)return0;return1;}intMin(){inti,temp=0;floatmin=matrix[n][0];for(i=1;i<s;i++)if(min>matrix[n][i]){min=matrix[n][i];temp=i;}returntemp;}voidJustArtificial(){inti;for(i=m+indexe+indexl;i<s;i++)if(fabs(x[i])>=){printf("NoAnswer\n");return;}}intCheck(intin){inti;floatmax1=-1;for(i=0;i<n;i++)if(fabs(matrix[i][in])>=&&max1<matrix[i][s]/matrix[i][in])max1=matrix[i][s]/matrix[i][in];if(max1<0)return1;return0;}intSearchOut(int*temp,intin){inti;floatmin=10000;for(i=0;i<n;i++)if(fabs(matrix[i][in])>=&&(matrix[i][s]/matrix[i][in]>=0)&&min>matrix[i][s]/matrix[i][in]){min=matrix[i][s]/matrix[i][in];*temp=i;}for(i=0;i<s;i++)if(a[i]==1&&matrix[*temp][i]==1)returni;}voidMto(intin,inttemp){inti;for(i=0;i<=s;i++)if(i!=in)matrix[temp][i]=matrix[temp][i]/matrix[temp][in];matrix[temp][in]=1;}voidBe(inttemp,intin){inti,j;floatc;for(i=0;i<=n;i++){c=matrix[i][in]/matrix[temp][in];if(i!=temp)for(j=0;j<=s;j++)matrix[i][j]=ma
可以运行线性规划C 程序 来自淘豆网www.taodocs.com转载请标明出处.