#include<stdio.h>
#include "stdafx.h"
#include<math.h>
#define m 3 /*定义约束条件方程组的个数*/
#define n 5 /*定义未知量的个数*/
float M=1000000.0;
float A[m][n]; /*用于记录方程组的数目和系数;*/
float C[n]; /*用于存储目标函数中各个变量的系数*/
float b[m]; /*用于存储常约束条件中的常数*/
float CB[m]; /*用于存储基变量的系数*/
float seta[m]; /*存放出基与入基的变化情况*/
float delta[n]; /*存储检验数矩阵*/
float x[n];
int num[m]; /*用于存放出基与进基变量的情况*/
float ZB=0; /*记录目标函数值*/
void input();
void print();
int danchunxing1();
int danchunxing2(int a);
void danchunxing3(int a,int b);
int danchunxing1()
{
int i,k=0;
int flag=0;
float min=0;
for(i=0;i<n;i++)
if(delta[i]>=0)
flag=1;
else {flag=0;break;}
if(flag==1)
return -1;
for(i=0;i<n;i++)
{
if(min>delta[i])
{min=delta[i];k=i;}
}
return k;
}
int danchunxing2(int a)
{
int i,k,j;
int flag=0;
float min;
k=a;
for(i=0;i<m;i++)
if(A[i][k]<=0)
flag=1;
else {flag=0;break;}
if(flag==1)
{printf("\n该线性规划无最优解!\n"); return -1;}
for(i=0;i<m;i++)
{
if(A[i][k]>0)
seta[i]=b[i]/A[i][k];
else seta[i]=M;
}
min=M;
for(i=0;i<m;i++)