Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
Yaric15
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 7
#1

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

10.11.2008, 10:10. Просмотров 2606. Ответов 11
Метки нет (Все метки)

Дан двумерный массив. Найти номер строки, где больше всего нулей. Помогите пожалуйсто, больше не на кого положиться. При Многом благодарен)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2008, 10:10
Ответы с готовыми решениями:

Дан двумерный массив. Найти номер строки, где больше всего нулей
Не очень понимаю что не так, помогите пожалуйста. #include <iostream> using...

Массив: Найти номер строки матрицы, в которой больше всего единичных элементов.
Дана квадратная матрица А порядка n. Найти номер строки матрицы, в которой...

Дан двумерный массив. Найти среднее арифметическое k-й строки массива
Дан двумерный массив. Найти среднее арифметическое k-й строки массива Давайте...

Дан двумерный массив A размера m×n. Найти количество столбцов, где все элементы упорядочены по возрастанию
Преподаватель сказал, что подсчитывается количество столбцов с упорядоченными...

Определить номер строки в которой больше всего гласных букв
Задание: 1) Скопировать из файла F1 в файл F2 все строки, кроме той, в которой...

11
greshnikk
31 / 31 / 7
Регистрация: 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 (где ети цифры означают количество нулей в строке первой второй и т.д. Далее выбираешь наибольшее число, и выводишь номер строки на екран.
0
Alirp
57 / 52 / 3
Регистрация: 04.05.2008
Сообщений: 272
10.11.2008, 10:35 #3
Заводишь счетчик (int переменная - обязательно занулить).
Заводишь переменные для хранения максимального количества нулей (тоже занулить) и для номера строки с максимальным количеством нулей.
Заводишь двойной цикл, в первом цикле перебираешь строчки, во втором сами значения, делаешь сравнение с нулем, если элемент строки равен нулю увеличиваешь значение счетчика на единицу, в конце второго цикла делаешь сравнение значения с максимальным значением нулей со счетчиком, если значение счетчика больше записаной переменной, то присваиваешь переменной с номером строки текущий номер строки, и так проходишь все строки, обязательно не забывай в начале каждого первого цикла (перебор строк) занулять счетчик.
В конце всех циклов в переменной с максимальным количеством нулей будет записано максимальное количество, а в переменной с номером строки, строка массива с максимальным количеством нулей.

Вот и весь алгоритм.
0
greshnikk
31 / 31 / 7
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:37 #4
Заводишь счетчик (int переменная - обязательно занулить).
Заводишь переменные для хранения максимального количества нулей (тоже занулить) и для номера строки с максимальным количеством нулей.
Я считаю что лучше ето сделать одним массивом, т.к. не надо будет заводить куча переменных.
0
Alirp
57 / 52 / 3
Регистрация: 04.05.2008
Сообщений: 272
10.11.2008, 10:42 #5
Цитата Сообщение от greshnikk Посмотреть сообщение
Я считаю что лучше ето сделать одним массивом, т.к. не надо будет заводить куча переменных.
Переменных не куча а всего три, зато все действия происходят в двух циклах, а в твоем случае придется заводить третий, в котором надо будет определить максимальное количетсво нулей.
0
greshnikk
31 / 31 / 7
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:43 #6
Ну тут уже кому как нравится Сколько людей столько как говорится и мнений.
0
Inlight
43 / 42 / 15
Регистрация: 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 прав имхо, т.к. заводить массив для чила нулей в строке - лишняя трата памяти. Алгоритм выше не выведет количества нулей в строке, т.к постановка задания
Найти номер строки, где больше всего нулей.
явно не указывает на необходимость этого
0
Sergei
1449 / 716 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
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;
}
0
Alirp
57 / 52 / 3
Регистрация: 04.05.2008
Сообщений: 272
10.11.2008, 11:30 #9
Цитата Сообщение от Inlight Посмотреть сообщение
if (temp > a)
А почему ты сравниваешь количество нулей с номером строки, Sergei правильно написал.
0
Inlight
43 / 42 / 15
Регистрация: 17.09.2008
Сообщений: 98
10.11.2008, 11:36 #10
А почему ты сравниваешь количество нулей с номером строки, Sergei правильно написал.
Сорри, а это не номер строки, а наибольшее количество нулей в строке в остальном всё правильно.
cout<<"Index stroki s maximalinim kol-vom nulei ="<<ind<<endl;
ind+1 выводить надо, кстати
0
greshnikk
31 / 31 / 7
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 13:20 #11
Ребят, ответы были даны выше. Зачем писать 10 ответов в одну тему ?
0
Yaric15
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 7
24.11.2008, 09:52  [ТС] #12
спасибо всем кто помогал))
0
24.11.2008, 09:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2008, 09:52

Определить номер строки, в которой больше всего букв «А» в файле
Здравствуйте! помогите вывести номер строки с наибольшим количеством букв &quot;A&quot;...

Определить номер той строки, в которой больше всего согласных букв
Переведите, пожалуйста: Uses CRT; Var f,f2:text; s,s2:string; ...

Двумерный массив: найти номер строки, в которой находится самое минимальное количество одинаковых элементов
Нужно в двумерном массиве из 5 строк и 7 столбцов найти номер строки, в которой...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru