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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2016, 16:23   #1
BERTY123
 
Регистрация: 16.12.2015
Сообщений: 8
По умолчанию Двумерный массив (нужны комментарии) с

Объясните как работает прога .
Двумерный массив имеет n строк и М столбцов ( n и m вводится с клавиатуры ) и заполняет вводом с клавиатуры . Напишите программу находящую индексы первого максимального элемента массива. Массив создать динамический


Код HTML:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int **a,i,k,n,m,maxi,maxk,max;
    scanf("%i %i" ,&n,&m);
    a=new int *[n];
    for (i=0;i<n;i++)
    {
    a[i]=new int[m];
}
for (i=0;i<n;i++)
{
for (k=0;k<m;k++)   
{
scanf("%i",&a[i] [k]);
}
}
for (i=0;i<n;i++)
{
for (k=0;k<m;k++)
{
if (i==0 && k==0)   max=a[0][0];
if(a[i][k]>max){ max=a[i][k];maxi=i;maxk=k;}
}
}
printf("%i \n%i",maxi,maxk);
for(i=0;i<n;i++)
{
    delete []a [i];
}
delete[]a;
}

Последний раз редактировалось BERTY123; 11.05.2016 в 17:06.
BERTY123 вне форума Ответить с цитированием
Старый 21.05.2016, 15:42   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
#include <stdio.h>      // заголовочный файл ввода-вывода, он нужен для чтобы человек мог ввести свои данные (работала функ-я scanf(), например)
#include <stdlib.h>     // заголовочный файл для динамической памяти (чтобы ты мог воспользоваться)
#include <time.h>       // незнаю зачем?
int main()
{
	int **a, i, k, n, m, maxi, maxk, max;  
	scanf("%i %i", &n, &m);                // Принимает от пользователя 2-е цифры (тип %i - целый) и присваивает их n=, m=
	a = new int *[n];                       
	for (i = 0; i<n; i++)                  //
	{                                      // Выделение динамической памяти под массив, кол-вом элементов n
		a[i] = new int[m];                 //
	}
	for (i = 0; i<n; i++)                  //    
	{                                      //
		for (k = 0; k<m; k++)              //
		{                                  //
			scanf("%i", &a[i][k]);         // Заполнение матрицы а (тип элементов должен быть %i - целый)
		}                                  //
	}                                      
	

	for (i = 0; i<n; i++)                  //   Стандарный алгоритм поиска максимума:
	{                                      //
		for (k = 0; k<m; k++)              //
		{                                  //
			if (i == 0 && k == 0)          // 
				max = a[0][0];             //  Шаг 1. Пусть максимальный элемент (max) будет = 1-му элементу матрицы
			
			if (a[i][k]>max)               //  Шаг 2. Перебираем подряд все элементы матрицы, попутно сравнивая с (max). Если текущий элемент 
			{                              //  матрицы больше макс., то 
				max = a[i][k];             //  максимальный элемент теперь будет = текущему элементу матрицы
				maxi = i;                  // Заодно запomним и место расположение максимального элемента в
				maxk = k;                  // переменных maxi и maxk
			}
		}
	}
	printf("%i \n%i", maxi, maxk);         // вывести в "черное окно" № столбца и № строки максимального єлемента 
	
	for (i = 0; i<n; i++)                  // Освободить всю динамическую
	{                                      // память. Если этого не сделать,
		delete[]a[i];                      // то занятая память (которую резервировали под нашу матрицу) 
	}                                      // будет недоступна другим программа (операционной системе, игр...).
	delete[]a;                             // А освоботится только после выключения компа. Т.называемая проблемма утечки памяти. 

	system("pause");                       // Я добавил от себя. Черное окно закрывается очень бысто - и чтобы оно звадержалось до нажатия любой кнопки
	return 0;                              // Возврат 0. Если программа отработала на отлично, то должна возвращать в операционн. систему  0 (эта программа может же завершится аварийно тогда не 0)
}
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужны комментарии к коду Nabi92 Помощь студентам 0 14.06.2015 15:45
Нужны комментарии к коду ClasterON Microsoft Office Excel 22 25.09.2012 18:43
нужны комментарии Олеся2 Помощь студентам 0 21.12.2011 17:37
нужны комментарии protrence Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 08.12.2011 12:21
Скрипт JS - нужны комментарии dropacid JavaScript, Ajax 3 04.04.2010 13:07