更新 for 循环中的变量
Updating variables in a for loop
我正在编写一个算法来进行高斯消除。我不知道为什么矩阵的元素在计算后没有改变。我想我可能需要以不同的方式定义元素,但我不知道如何定义。还有其他简单的方法来解决此问题吗?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, i, j, k;
float mult;
cout << "Enter the number of equationsn";
cin >> n;
int a[n][n], x[n], b[n];
for (i=0;i<n;i++)
{
for (int j=0;j<n;j++)
{
cout << "A[" << i+1 << "][" << j+1 << "]=";
cin >> a[i][j];
}
}
for (i = 0; i<n; i++)
{
cout << "b[" << i+1 << "] is ";
cin >> a[i][n];
}
for (j = 0; j< n; j++)
for (i=j+1; i< n ; i++)
mult = a[i][j] / a[j][j];
for (k = j+1; k < n ; k++)
a[i][k] = a[i][k] - mult * a[j][k];
x[n-1] = a[n-1][n]/ a[n-1][n-1];
for (i = n-2; i=0; i--)
for (j=n-1; j = i+1; j--)
a[i][n] = a[i][n] - a[i][j]*x[j];
x[i] = a[i][n] / a[i][i];
}
我看到你的代码有几个问题:
VLA1不是标准 C++
在标准 c++ 中,int a[n][n], x[n], b[n];
无效,因为n
在编译时不是常量。即使某些编译器允许这样做,也不要使用它。改用 std::vector。
最后一行代码不是任何循环的一部分
您应该使用 IDE 或简单的编辑器来为您修复意图,然后您会发现,最后一行x[i] = a[i][n] / a[i][i];
不是任何循环的一部分。我的提示:for
后总是使用参数!
最后一个循环的条件错误
最后一个循环for(i = n-2; i=0; i--)
的条件为i=0
。这将值 0 will_assign_i
然后评估i
作为条件,由于i
为零,它将退出循环。可能您打算使用==
来比较值。
嵌套循环for (j=n-1; j = i+1; j--)
也是如此。阿拉伯数字
<小时 />
1可变长度数组
2实际上,这个循环将永远运行在任何n != 0
相关文章:
- 在循环中按顺序遍历成员变量
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 与 for 循环中的变量混淆
- 如何在循环之外重新输入变量
- 如何使用将字符串拆分为 for 循环中的变量的程序
- 在变量声明中使用 for 循环
- C++ 和 Boost.Python - 如何将变量公开给 python 并在循环中更新它?
- C++ Code 在 for 循环期间不会累积变量中的总和,仅提供最终迭代值
- C++ 在循环中添加计数器变量并再次初始化其值
- (C++)虽然循环一次不起作用,但我引入了多个变量
- 如何添加循环期间分配的变量?
- C++,每个循环初始化一个新的静态变量
- 在 for 循环中更新两个变量时遇到问题C++
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 需要循环帮助以迭代方式添加到程序集中的总和变量
- 在 c++ 中基于范围的 for 循环中使用引用作为控制变量
- 如何在循环中动态创建变量(c++)
- 变量循环范围会导致返回局部变量的地址引用
- ifstream变量循环不打印任何内容
- c++变量/循环问题