c++ 如何填充数组

e7arh2l6  于 2023-05-24  发布在  其他
关注(0)|答案(4)|浏览(250)

我想写一些代码来计算一些值,并把这些值放在一个2维数组中。我写了这个问题的非常简单的形式。
这段代码没有输出。
我想有一个例如mn数组或矩阵的元素是由特定的功能计算。

#include "stdafx.h"
#include "iostream"
#include "cmath"
using namespace std;

double x;
int i,j;   
double A[10][10];
double M;

double function (double A,double x)
{
     for (i = 0; i = 9; ++i)
         for (j = 0; j = 9; ++j)
             M = 10 + x + A;
     return  M;
}

int _tmain(int argc, _TCHAR* argv[])
{
    double y;
    cin >> x;
    y = function(A[10][10], x);
    cout << y;

    return 0;
}
tgabmvqs

tgabmvqs1#

这个代码没有任何意义

{ for (i=0;i=9;++i) for (j=0;j=9;++j) M=10+x+A; return  M; }

你在循环中把9赋值给i和j。由于9不等于0,那么这些条件i = 9j = 9将始终转换为真,并且循环将是无限的。另外,不清楚您使用另一个无效表达式M=10+x+A试图计算什么

hlswsv35

hlswsv352#

在循环条件中使用赋值=而不是相等==。由于9恰好转换为true,因此您的循环是无限循环(顺便说一句,您可能希望使用i != 10,无论如何,j也是如此)。

hjqgdpho

hjqgdpho3#

看起来你打算这样做:

for (i = 0; i <= 9; ++i)
     for (j = 0; j <= 9; ++j)

你错过了<。i < 10将是更标准的用法。

ef1yzkbh

ef1yzkbh4#

下面的内容可以帮助你理解如何初始化数组。

double createValueFromIndices(int x, int y)
{
    return 10. * x + y; // or any wanted value;
}

void initArray(double (&a)[10][10])
{
     for (int x = 0; x != 10; ++x) {
         for (int y = 0; y != 10; ++y) {
             a[x][y] = createValueFromIndices(x, y);
         }
     }
}

int main(int argc, char** argv)
{
    double a[10][10];

    initArray(a);

    return 0;
}

相关问题