Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 18:29   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию Проблема с двумерным массивом

Добрый день. Дан двумерный массив 5х6, стоит задача определить столбец с минимальным числом единиц. Не совсем понимаю, как пробежаться конкретно по столбцам и на выходе получить тот из них, в котором единиц меньше всего. Наработки не могу предоставить, так как их нету вообще... Я не прошу писать за меня программу, я прошу просто натолкнуть меня на правильный путь.
Dima-War вне форума Ответить с цитированием
Старый 29.05.2013, 19:01   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Что такое 3 столбец массива m? Это множество m[i][2], где i пробегает все допустимые значения (множество третьих элементов всех строк).
Abstraction вне форума Ответить с цитированием
Старый 29.05.2013, 19:18   #3
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Ок... Вот что получилось, но есть 2 вопроса:
1) Нету ли выхода за пределы массива (потому что когда считается counter я как то на подсознательном уровне сделал этот цикл).
2) Как мне получить количество единиц конкретно в каждом столбце? (если возможно, то без использования закомментированной строки).

Код:
#include <iostream>
#include <time.h>

using namespace std;

int main()
{
	srand(time(NULL));
	int matrix[5][6];
	//int first = 0, second = 0, third = 0, fourth = 0, fifth = 0, sixth = 0;
	int counter = 0;
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j < 6; j++)
		{
			matrix[i][j] = rand() % 2;
		}
	}
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j < 6; j++)
		{
			cout << matrix[i][j] << " ";
		}
		cout << endl;
	}
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j < 6; j++)
		{
			if(matrix[i][j] == 1)
			{
				counter++;
			}
		}
	}
	cout << counter << endl;
	system("pause");
	return 0;
}

Последний раз редактировалось Dima-War; 29.05.2013 в 19:22.
Dima-War вне форума Ответить с цитированием
Старый 29.05.2013, 19:23   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Нарушения границ массива нет: первый индекс до 5, второй индекс до 6.
Цитата:
Как мне получить количество единиц конкретно в каждом столбце?
Обнуляйте counter не в самом начале, а каждый раз перед тем как начать обходить очередной столбец.
Abstraction вне форума Ответить с цитированием
Старый 29.05.2013, 19:24   #5
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Все, вроде пока разобрался. Использую еще один массив, куда помещаю количество единиц из матрицы..
Спасибо, Abstraction.
Dima-War вне форума Ответить с цитированием
Старый 29.05.2013, 19:32   #6
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Все же не разобрался... Неправильно считает количество единиц..

Код:
#include <iostream>
#include <time.h>

using namespace std;

int main()
{

        srand(time(NULL));
	int column[6];
	int counter = 0;
	int matrix[5][6] = {
		{1, 0, 1, 0, 0, 0},
		{0, 0, 0, 1, 1, 0},
		{0, 1, 0, 1, 0, 0},
		{0, 0, 1, 0, 1, 1},
		{1, 1, 1, 0, 1, 0}
	};
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j < 6; j++)
		{
			cout << matrix[i][j] << " ";
		}
		cout << endl;
	}
	for(int i = 0; i < 5; i++)
	{
		counter = 0;
		for(int j = 0; j < 6; j++)
		{
			if(matrix[i][j] == 1)
			{
				counter++;
			}
			column[j] = counter;
		}
	}
	cout << endl << endl;
	for(int i = 0; i < 6; i++)
	{
		cout << i + 1 << " столбец: " << column[i] << endl;
	}
	system("pause");
	return 0;
}
Dima-War вне форума Ответить с цитированием
Старый 29.05.2013, 20:07   #7
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Все... Путем долгих проб и ошибок добился результата
Dima-War вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ задача с двумерным массивом nnina Помощь студентам 0 01.03.2012 19:15
Проблема с двумерным массивом изображений packa C++ Builder 2 27.01.2012 21:13
Проблема с двумерным массивом в VBA HellkilleR Microsoft Office Excel 2 30.03.2010 05:48
помогите с двумерным массивом nikita33321 Помощь студентам 0 30.09.2009 22:45
задача с двумерным массивом Ras Помощь студентам 1 22.12.2007 19:58