Программа не заполняет массив как нужно

284
03 июня 2018, 14:00
Вот в общем задача:

Ввести с клавиатуры целую матрицу размерностью 5x5. Определить: 1) сумму положительных элементов в четных строках; 2) номера столбцов, не содержащих отрицательных элементов.

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

Пытаясь найти информацию по этому делу пришел ни к чему. Учусь в вузе, на программирование отводится один семестр и препод толком помочь не может (ввиду своего посредственного отношения к предмету, эх).

//ex_5.cpp : вывод в табличном виде результат вычисления функций
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "iostream"
using namespace std;
int main()
{
    setlocale(LC_ALL, "RUS");
    int a[5][5], b[5], i, j, sum, k, num;
    sum = 0;
    k = 0;
    for (i = 0; i <= 4; i++)
        for (j = 0; j <= 4; j++)
            a[i][j] = rand() % 20 ;     //ввод данных
    for (i = 0; i <= 4; i++) {
        for (j = 0; j <= 4; j++)
            printf("%d\t", a[i][j]);
        printf("\n");
    }                                       //вывод массива
    for (i = 0; i < 5; i++) {
        if (i % 2 != 0)
            for (j = 0; j < 5; j++) {
                if (a[i][j] > 0) {
                    sum = sum + a[i][j];
                }
            }
    }                                   //сумма положительных элементов чётных строк
    cout << "Cумма положительных элементов чётных строк: " << sum << endl;
    cout << "Столбцы с неотрицательными элементами: ";
    for (j = 0; j < 5; j++) {
        for (i = 0; i < 5; i++) {
            if (a[i][j] < 0) {
                k++;
            }
        }
        if (k = 0) {
            num = j;
            b[j] = num;
            cout << b[j];
        }
    }
    for (i = 0; i < 5; i++) {
        cout << b[j] << " ";
    }                             //столбцы с неотрицательными элементами
    _getch();
}
Answer 1

У вас массив b не инициализирован при старте программы, поэтому выводит мусор. И ещё, формирование массива у вас производится некорректно, таким образом у вас отрицательных чисел не будет. Вам нужно отнимать от полученного числа половину диапазона задаваемых чисел, и все будет работать.

READ ALSO
Библиотека для записи файла С++

Библиотека для записи файла С++

Усовершенствовать код с++Подскажите, пожалуйста, как будет правильнее записывать файл такой структуры

263
Ошибка в коде программы с++

Ошибка в коде программы с++

Столкнулся с проблемой в коде, не получается запустить программу

270
Конструктор надо сделать

Конструктор надо сделать

Не могу понять одну фишку есть вот такой рабочий код

277
Как можно внедрить resource файлы в программу?

Как можно внедрить resource файлы в программу?

Например допустим я хочу сделать программу для смены обоевЕсть функция которая может это реализовать, однако если я скину эту программу...

251