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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 23:06   #1
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию Указать индексы всех элементов, имеющих наибольшее значение.Язык СИ.

Задание:В заданной целочисленной матрице размера mxn (m и n – некоторые константы) указать индексы всех элементов, имеющих наибольшее значение.
Решение:
Код:
#include <stdio.h>
#include <locale.h>
const int M = 2; 
const int N = 2; 
main()
{
setlocale(LC_ALL, "rus");
int i, j, A[M][N], a_max=0;
for ( i = 0; i < M; i ++ )
for ( j = 0; j < N; j ++ )
{
printf ("A[%d][%d]=", i, j); 
scanf ("%d", & A[i][j]); 
}
for ( i = 0; i < M; i ++ ) { 
for ( j = 0; j < N; j ++ )

if(A[i][j]>a_max)
{
	a_max=A[i][j];
}

}
printf("Матрица A\n");
for ( i = 0; i < M; i ++ ) { 
for ( j = 0; j < N; j ++ ) 
printf ( "%4d", A[i][j] ); 
printf("\n");
}
}
Знаю что у меня квадратная матрица, но так надо.
Почему у меня неправильно записано условие для нахождение наибольшего значение?И как мне синтаксически правильно указать индексы?
East Undia Trading вне форума Ответить с цитированием
Старый 24.12.2013, 08:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вместо
Цитата:
Код:
a_max=0;
намного лучше иницилизировать переменную первым элементом массива:

Код:
int i, j, A[M][N], a_max;
for ( i = 0; i < M; i ++ )
for ( j = 0; j < N; j ++ )
{
  printf ("A[%d][%d]=", i, j); 
  scanf ("%d", & A[i][j]); 
}
a_max = A[0][0];
...
поиск, имхо, написан нормально.

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

Код:
...
printf("Максимальное значение в матрице равно %4d и это ячейки: \n", a_max);
for ( i = 0; i < M; i ++ ) 
   for ( j = 0; j < N; j ++ ) 
       if (A[i][j]==a_max) 
          printf ( "i=  %4d  j= %4d \n", i, j ); 
...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
на C++: проверить наличие цифры 0 в дробной части и найти количество элементов, принимающих наибольшее значение Анна Седакова Помощь студентам 19 16.10.2013 17:32
Построить таблицу В, состоящую из элементов таблицы А [1..75], имеющих четные индексы. KotyaraYa Помощь студентам 4 18.12.2012 09:33
(PASCAL ABC)Дана Матрица, найти индексы всех эл-ов с наибольшим значением, если таких элементов несколько Grandhustla Помощь студентам 0 25.05.2011 16:06
Найти максимальное значение среди отрицательных элементов и вывести на экран его индексы. Nursik77 Помощь студентам 2 08.04.2011 17:23
Необходимо определить максимальное значение, хранимое в 2-х массивах и указать сумму элементов массива Игорь777 Помощь студентам 1 29.03.2009 21:14