Как можно суммировать строки матрицы, игнорируя первую строку? В C - PullRequest
0 голосов
/ 14 апреля 2020

Я сделал следующее:

for (int i = 0; i < tamLinhas; i++) {
    for (int j = 0; j < tamColunas; j++) {
        if (i >= 0) {
            vetormedia[j] = (informacoes[i][j] + informacoes[i][j]) / tamVetor;
        }
    }
}

Я пытаюсь записать в массив результат суммы строк матрицы, но мне нужно игнорировать первую строку матрицы.

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

1 Ответ

1 голос
/ 14 апреля 2020

Чтобы обойти первую строку матрицы informacoes , просто запустите итерацию с индексом 1, а не 0:

for (int i = 1; i < tamLinhas; i++) {

Обратите внимание на ваш тест if (i> = 0) бесполезен даже в вашем первоначальном случае, потому что i не может быть отрицательным

Эта строка очень странная:

vetormedia[j] = (informacoes[i][j] + informacoes[i][j]) / tamVetor;

потому что вы не суммируете строки и сохраняете это значение в одном месте для всех строк.

Просто суммируйте строки каждой строки отдельно и сохраните результат в vetormedia :

for (int i = 1; i < tamLinhas; i++) {
  int sum = 0
  for (int j = 0; j < tamColunas; j++) {
    sum += informacoes[i][j];
  }
  vetormedia[i] = sum;
}

Предположим, tamLinhas значения 3 и tamColunas значения 4 и informacoes - это следующая матрица:

1 2 3 4
4 5 6 7
8 9 0 1

после предыдущего l oop vetormedia будет:

x 22 18

, где "x" определяет любое значение, поскольку первая строка матрицы обойдена

хочешь этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...