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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Yaric15
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 7
#1

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

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

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

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

Дан двумерный массив. Найти среднее арифметическое k-й строки массива - C++
Дан двумерный массив. Найти среднее арифметическое k-й строки массива Давайте темам осмысленные названия. Темы с некорректными...

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

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

Определить номер той строки, в которой больше всего согласных букв - C++
Переведите, пожалуйста: Uses CRT; Var f,f2:text; s,s2:string; i,l,n1,n2,n,max,ind,c:integer; begin ...

Среди простых чисел , не превосходящих заданного натурального числа N .Найти такие, в десятичном представление которых больше всего нулей - C++
Ребята помогите!!!!!!!!!!!!!! плс

Двумерный массив: найти номер последней по порядку строки массива, содержащей наибольшее количество букв ш - C++
Дан двумерный массив, элементами которых являются отдельные символы. Найти номер последней по порядку строки массива, содержащей ...

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

Вот и весь алгоритм.
greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:37     Дан двумерный массив. Найти номер строки, где больше всего нулей. #4
Заводишь счетчик (int переменная - обязательно занулить).
Заводишь переменные для хранения максимального количества нулей (тоже занулить) и для номера строки с максимальным количеством нулей.
Я считаю что лучше ето сделать одним массивом, т.к. не надо будет заводить куча переменных.
Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
10.11.2008, 10:42     Дан двумерный массив. Найти номер строки, где больше всего нулей. #5
Цитата Сообщение от greshnikk Посмотреть сообщение
Я считаю что лучше ето сделать одним массивом, т.к. не надо будет заводить куча переменных.
Переменных не куча а всего три, зато все действия происходят в двух циклах, а в твоем случае придется заводить третий, в котором надо будет определить максимальное количетсво нулей.
greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
10.11.2008, 10:43     Дан двумерный массив. Найти номер строки, где больше всего нулей. #6
Ну тут уже кому как нравится Сколько людей столько как говорится и мнений.
Inlight
43 / 42 / 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
1428 / 695 / 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
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
10.11.2008, 11:30     Дан двумерный массив. Найти номер строки, где больше всего нулей. #9
Цитата Сообщение от Inlight Посмотреть сообщение
if (temp > a)
А почему ты сравниваешь количество нулей с номером строки, Sergei правильно написал.
Inlight
43 / 42 / 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
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++
Нужно в двумерном массиве из 5 строк и 7 столбцов найти номер строки, в которой находится самое минимальное количество одинаковых...

Дан двумерный массив n*m Найти среднее арифметическое S его элементов и заменить этим числом элементы второй строки - C++
Не получается написать правильно программу.Дан двумерный массив А размером m*n. Найти среднее арифметическое S его элементов и заменить...

Дано двумерный массив целых чисел. Найти номер строки, в которой сумма отрицательных нечетных элементов наибольшая - C++
помогите Пожалуста с задачей я не знаю как правильно прописать, чтоб он выводил число строки((( помогите пожалуста((#include&lt;iostream&gt; ...

Дан массив вещественных чисел. Определитьпорядковый номер того из них, который ближе всего к заданному числу Х - C++
Спасибо за помощь!

Дана символьная прямоугольная матрица NхM. Найти номер столбца, содержащего больше всего цифр. - C++
Дана символьная прямоугольная матрица NхM. Найти номер столбца, содержащего больше всего цифр.


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

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

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