Cplex c++ loop for
Cplex c++ loop for
我需要在visual c++中使用可调用库编写一个复杂的程序。
我需要这样使用numrows和numcols。
我只把我的程序的开始,因为我的问题是在开始。我的程序崩溃了,我找到了。它发生在循环之后,以增加numrows。看起来它不能跳出循环std::cout <<NUMROWS & lt; & lt;"answers";永远不会出现。如果我在循环中写入它,我将看到值,但之后看不到。我找不到原因。你知道为什么吗?
感谢//subfunction pk, xik, yjk
int P(int k){
return k-1;
}
int X(int i, int k){
int p, n;
return p + (i-1)*(n-1) + (k-1);
}
int Y(int j, int k){
int p, n, m;
return p + n*p + (j-1)*(m-1) + (k-1);
}
int main (int argc, char **argv){
srand(time(0));
int status = 0;
int project = 4;
int employee = 5;
int time = 5;
int empl [] = {2, 2, 2, 3};
int meet [] = {2, 4, 3, 3};
int n, m, k, p;
n=5;
m=5;
p=4;
int NUMCOLS=n+m;
CPXENVptr env = NULL;
CPXLPptr lp = NULL;
double *obj = new double [NUMCOLS];
//Objective function
int profit [] = {10, 20, 5, 15};
for (int i=0; i<project; i++){
obj[i]=profit[i];
}
int solstat;
double objval;
double *lb = new double [NUMCOLS];
double *ub = new double [NUMCOLS];
double *x = new double [NUMCOLS];
int *matbeg = new int [NUMCOLS];
int *matcnt = new int [NUMCOLS];
char *ctype = new char [NUMCOLS];
int **F = new int*[employee];
for(int a = 0; a < employee; a++){
F[a] = new int [time];
for(int b = 0; b < time; b++){
F[a][b]=rand()%2;
std::cout << F[a][b] << ", ";
}
}
int NUMROWS=0;
for(int i=1; i<=n; i++){ //Each xi
for(int j=1; j<=m; j++){ //Each yj
if(F[i][j] ==0){
NUMROWS++;
}
}
}std::cout << NUMROWS << "and ";
double *rhs = new double [NUMROWS+1];
char *sense = new char [NUMROWS+1];
for(int i=0; i < NUMROWS; i++) { //Each row
rhs[i]=1;
sense[i]='L';
}
int num_entries=-1;
for(int i=0; i < n; i++) {
for(int j=0; j < m; j++) {
if(F[i+1][j+1] ==0) { //1st constraint (pk, xik, yjk)
num_entries++;
num_entries++;
num_entries++;
std::cout << "try ";
}
}
}
int NUMNZ = NUMROWS*NUMCOLS;
int *matind = new int [2*NUMROWS+m];
double *matval = new double [2*NUMROWS+m];
matrix_entry *M = new matrix_entry [num_entries+1+m];
num_entries=-1;
int row=-1;
for(int i=0; i < n; i++) {//1st constraint
for(int j=0; j < m; j++) {
if(F[i+1][j+1] ==0) {
row++;
num_entries++;
M[num_entries].col=P(project); //pk
M[num_entries].row=row;
M[num_entries].val=-1;
num_entries++;
M[num_entries].col=X(i,project); //xik
M[num_entries].row=row;
M[num_entries].val=1;
num_entries++;
M[num_entries].col=Y(j,project); //yik
M[num_entries].row=row;
M[num_entries].val=1;
}
}
}
您有以下声明:
int employee = 5;
int time = 5;
n=5;
m=5;
然后使用——
初始化F
数组for(int a = 0; a < employee; a++){
F[a] = new int [time];
for(int b = 0; b < time; b++){
F[a][b]=rand()%2;
然后使用——
访问它for(int i=1; i<=n; i++){ //Each xi
for(int j=1; j<=m; j++){ //Each yj
if(F[i][j] ==0){
所以你在1
的范围之外。循环应该是
for(int i=0 i<n; i++){ //Each xi
for(int j=0; j<m; j++){ //Each yj
建议:
请使用
std::vector
或其他容器(Basile Starynkevitch
建议)请给你的变量起个好名字(容易理解和记忆)
请在循环中使用的变量保持一致,您将更少忘记边界
相关文章:
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- "Ill-defined for-loop - loop executes infinitely" (MSVC C6295)
- For-loop或std::any_of,我应该使用哪一个?
- 在"for loop"中使用GOTOXY定位
- 在这种情况下,我将如何继续 1 到 360 的"for loop"处理指针和地址?
- C++ For Loop在过程中被跳过了.如何解决?
- 如何增加"for loop"呈现的结果?
- 在C 中,如何在使用for loop的整数中找到所有连续的复合编号
- C :用sizeof()operator在for for loop中增加一个int变量,只能工作一次
- Bjarne Stroustrup Book - Vector and For loop - 将不起作用
- OpenCV cv::Mat "+=" inside for loop
- exc_bad_access on for loop(数组功能指针)
- For-Loop帮助获得错误的输出
- "Do not change a loop variable inside a for loop block"的意义是什么?
- paralelizing for loop with inequality (openmp c++)
- C++ EXPECT_EQ & ASSERT inside for loop
- C++迭代器"for loop"习惯用法,其步长> 1 并允许非随机访问反向迭代器
- Issue with a for loop (C++, Visual Studio
- 使用 "For Loop" 按以下顺序显示数字
- C OpenMP for-loop全局可变问题