Форум программистов, компьютерный форум CyberForum.ru

Дан двумерный массив. Найти номер строки, где больше всего нулей. - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Yaric15
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 7
10.11.2008, 10:10     Дан двумерный массив. Найти номер строки, где больше всего нулей. #1
Дан двумерный массив. Найти номер строки, где больше всего нулей. Помогите пожалуйсто, больше не на кого положиться. При Многом благодарен)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2008, 10:10     Дан двумерный массив. Найти номер строки, где больше всего нулей.
Посмотрите здесь:

Дан двумерный массив n*m Найти среднее арифметическое S его элементов и заменить этим числом элементы второй строки C++
Среди простых чисел , не превосходящих заданного натурального числа N .Найти такие, в десятичном представление которых больше всего нулей C++
Определить номер той строки, в которой больше всего согласных букв C++
C++ Дан одномерный массив. Если произведение элементов с чётными номерами больше произведения с нечетными номерами, то найти номер максимального элемента
C++ Дан двумерный массив. Найти среднее арифметическое k-й строки массива
C++ Двумерный массив: найти номер строки, в которой находится самое минимальное количество одинаковых элементов
C++ Дано двумерный массив целых чисел. Найти номер строки, в которой сумма отрицательных нечетных элементов наибольшая
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:23     Дан двумерный массив. Найти номер строки, где больше всего нулей. #2
хммм...
Смотри: у тебя есть массив mas[i][j]
Ты делаешь так: так как двумерный массив, то циклов будет 2:
Код
for (i=0;i<10;i++)    //ето если у тебя допустим 10 на 10 массив
  { for (j=0;j<10;j++)
       { if (mas[i][j]==0) inc a[i];  //Я завел еще 1 массив для хранения количества нулей.
        }
  }
И после етого твой новый массив a[i] будет выглядеть что то типа так 3 5 1 8 (где ети цифры означают количество нулей в строке первой второй и т.д. Далее выбираешь наибольшее число, и выводишь номер строки на екран.
Alirp
 Аватар для Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
10.11.2008, 10:35     Дан двумерный массив. Найти номер строки, где больше всего нулей. #3
Заводишь счетчик (int переменная - обязательно занулить).
Заводишь переменные для хранения максимального количества нулей (тоже занулить) и для номера строки с максимальным количеством нулей.
Заводишь двойной цикл, в первом цикле перебираешь строчки, во втором сами значения, делаешь сравнение с нулем, если элемент строки равен нулю увеличиваешь значение счетчика на единицу, в конце второго цикла делаешь сравнение значения с максимальным значением нулей со счетчиком, если значение счетчика больше записаной переменной, то присваиваешь переменной с номером строки текущий номер строки, и так проходишь все строки, обязательно не забывай в начале каждого первого цикла (перебор строк) занулять счетчик.
В конце всех циклов в переменной с максимальным количеством нулей будет записано максимальное количество, а в переменной с номером строки, строка массива с максимальным количеством нулей.

Вот и весь алгоритм.
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:37     Дан двумерный массив. Найти номер строки, где больше всего нулей. #4
Заводишь счетчик (int переменная - обязательно занулить).
Заводишь переменные для хранения максимального количества нулей (тоже занулить) и для номера строки с максимальным количеством нулей.
Я считаю что лучше ето сделать одним массивом, т.к. не надо будет заводить куча переменных.
Alirp
 Аватар для Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
10.11.2008, 10:42     Дан двумерный массив. Найти номер строки, где больше всего нулей. #5
Цитата Сообщение от greshnikk Посмотреть сообщение
Я считаю что лучше ето сделать одним массивом, т.к. не надо будет заводить куча переменных.
Переменных не куча а всего три, зато все действия происходят в двух циклах, а в твоем случае придется заводить третий, в котором надо будет определить максимальное количетсво нулей.
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:43     Дан двумерный массив. Найти номер строки, где больше всего нулей. #6
Ну тут уже кому как нравится Сколько людей столько как говорится и мнений.
Inlight
42 / 41 / 2
Регистрация: 17.09.2008
Сообщений: 98
10.11.2008, 10:53     Дан двумерный массив. Найти номер строки, где больше всего нулей. #7
Код
int a = 0, temp
for (i=0;i<10;i++) {
	temp = 0;
	for (j=0;j<10;j++) {
		if (mas[i][j] == 0) {
			temp++;
		}
	}
	if (temp > a) {
		a = i+1;
	}
}
a - наибольшее количество нулей в строке, temp - итератор для количества нулей. Alirp прав имхо, т.к. заводить массив для чила нулей в строке - лишняя трата памяти. Алгоритм выше не выведет количества нулей в строке, т.к постановка задания
Найти номер строки, где больше всего нулей.
явно не указывает на необходимость этого
Sergei
 Аватар для Sergei
1424 / 691 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
10.11.2008, 11:16     Дан двумерный массив. Найти номер строки, где больше всего нулей. #8
Вот код программы
Код
#include <iostream>
using namespace std;
void main()
{
	int a[100][100];//matritsa 
    int n, m;
	int maxzeroline = 0;
	int maxzero= 0;
	int ind;
	//razmer matritsi
	cout<<"n=";cin>>n;cout<<endl;
	cout<<"m=";cin>>m;cout<<endl;
	//zapolniaem matritsu slucainimi cislami i vivodim na ekran
	for (int i=0;i<n;i++)
	{
		for (int j=0;j<m;j++)
	    {
		  a[i][j] = rand()%20 - 10 ;
		   cout<<a[i][j]<<"  ";
	    }
		cout<<endl;
	}
	for (int i=0;i<n;i++)
	{
		maxzeroline = 0;
		for (int j=0;j<m;j++)
		{
			if (a[i][j] == 0)
			{
				maxzeroline ++;//podscet nulei v stroke
			}
		}
		if(maxzeroline >=maxzero )
		{
			maxzero = maxzeroline;
			ind = i;
		}					
	}
 cout<<"Index stroki s maximalinim kol-vom nulei ="<<ind<<endl;
}
Alirp
 Аватар для Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
10.11.2008, 11:30     Дан двумерный массив. Найти номер строки, где больше всего нулей. #9
Цитата Сообщение от Inlight Посмотреть сообщение
if (temp > a)
А почему ты сравниваешь количество нулей с номером строки, Sergei правильно написал.
Inlight
42 / 41 / 2
Регистрация: 17.09.2008
Сообщений: 98
10.11.2008, 11:36     Дан двумерный массив. Найти номер строки, где больше всего нулей. #10
А почему ты сравниваешь количество нулей с номером строки, Sergei правильно написал.
Сорри, а это не номер строки, а наибольшее количество нулей в строке в остальном всё правильно.
cout<<"Index stroki s maximalinim kol-vom nulei ="<<ind<<endl;
ind+1 выводить надо, кстати
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 13:20     Дан двумерный массив. Найти номер строки, где больше всего нулей. #11
Ребят, ответы были даны выше. Зачем писать 10 ответов в одну тему ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2008, 09:52     Дан двумерный массив. Найти номер строки, где больше всего нулей.
Еще ссылки по теме:

Массив: Найти номер строки матрицы, в которой больше всего единичных элементов. C++
Дан двумерный массив A размера m×n. Найти количество столбцов, где все элементы упорядочены по возрастанию C++
Двумерный массив: найти номер последней по порядку строки массива, содержащей наибольшее количество букв ш C++
Дан массив вещественных чисел. Определитьпорядковый номер того из них, который ближе всего к заданному числу Х C++
C++ Определить номер строки в которой больше всего гласных букв

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yaric15
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 7
24.11.2008, 09:52  [ТС]     Дан двумерный массив. Найти номер строки, где больше всего нулей. #12
спасибо всем кто помогал))
Yandex
Объявления
24.11.2008, 09:52     Дан двумерный массив. Найти номер строки, где больше всего нулей.
Ответ Создать тему
Опции темы

Текущее время: 00:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru