Как заполнить массив

0

Я хочу написать код для вычисления некоторых значений и поместить эти значения в двумерный массив. Я написал очень простую форму этой проблемы.

Этот код не дает результата.

Я хочу иметь один массив m или n с элементами, которые вычисляются по определенной функции.

#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;
}
  • 0
    Возможно, компилятор возражал против вашего отступа? Или ваше бессмысленное неправильное использование глобальных переменных. Кроме того, какой выход вы ожидали?
  • 1
    «я <10», а не «я = 9»
Показать ещё 1 комментарий
Теги:

4 ответа

2

Этот код не имеет никакого смысла

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

Вы назначаете 9 в я и j в циклы. Поскольку 9 не равно 0, то эти условия i = 9 и j = 9 всегда будут преобразованы в true и циклы будут бесконечными. Также неясно, что вы пытаетесь вычислить, используя еще одно недопустимое выражение M=10+x+A

  • 0
    Я имею в виду I и j = 10, я хочу вычислить элементы матрицы или массива. Каждый элемент матрицы (M [i] [j]) может быть рассчитан по определенной функции.
  • 0
    Имя M не определено как массив вами. Поэтому я до сих пор не понимаю, что вы пытаетесь сделать.
1

Вы используете назначение = вместо равенства == в вашем состоянии цикла. Поскольку 9 преобразуется в true ваши циклы - это бесконечные циклы (BTW, вы, вероятно, захотите использовать i != 10 а также для j любом случае).

0

Следующее может помочь вам понять, как инициализировать массив.

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;
}
  • 0
    какой вывод этого кода
  • 0
    @ user3120411: Нет вывода, но будет инициализирован массив a . Таким образом, a[x][y] == 10. * x + y , например a[4][2] == 42.
0

Похоже, вы намеревались сделать:

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

Вам не хватало <. я <10 будет более стандартным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню