#include <iostream> using namespace std; int check(float sigema, int m) { for (int i = 1; i <= m ; i++) { if (sigema[i] > 0) { return 0; } } return 1; } #include<stdio.h> int main(int argc, char argv[]){ int m, n; cout << "请输入变量个数:"; cin >> m; cout << "请输入不等式个数:"; cin >> n; float *matrix = new float; for (int i = 1; i <= n; i++) { matrix[i] = new float[m + 2]; } float *cj; }这个程序为什么不需要输入不等式参数
时间: 2023-07-30 14:12:53 浏览: 118
这个程序是有问题的,因为它在申请matrix数组时只申请了一个浮点数的空间,而没有按照二维数组的方式申请,所以无法输入不等式的参数。
另外,在定义函数check时,参数sigema应该是一个指向浮点数数组的指针,而不是一个浮点数。因为该函数需要遍历整个数组,而一个浮点数无法表示一个数组。
正确的代码应该像这样:
```c++
#include <iostream>
using namespace std;
int check(float *sigema, int m) {
for (int i = 1; i <= m ; i++) {
if (sigema[i] > 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n;
cout << "请输入变量个数:";
cin >> m;
cout << "请输入不等式个数:";
cin >> n;
float **matrix = new float*[n + 1];
for (int i = 1; i <= n; i++) {
matrix[i] = new float[m + 2];
for (int j = 1; j <= m + 1; j++) {
cout << "请输入第" << i << "个不等式的第" << j << "个参数:";
cin >> matrix[i][j];
}
}
float *cj = new float[m + 1];
// 使用完毕后需要释放空间
for (int i = 1; i <= n; i++) {
delete[] matrix[i];
}
delete[] matrix;
delete[] cj;
return 0;
}
```
这个程序使用了二维数组的方式申请了matrix数组,并在循环内部对每个不等式的参数进行了输入。同时,也申请了一个浮点数数组cj,但是没有对它进行初始化。需要根据实际需要进行进一步的处理。
阅读全文