Как найти максимальное значение строки двумерного массива

tune

0 / 0 / 1

Регистрация: 04.03.2015

Сообщений: 26

1

Двумерный массив. Найти максимальный элемент каждой строки

04.03.2015, 07:01. Показов 19727. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Дан двумерный массив. Помогите пожалуйста найти максимальный элемент каждой строки

P.S. Если это важно, то пусть массив будет 5х6

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Console.WriteLine("Введите размерность массива");
            int n, m;
            n = Convert.ToInt32(Console.ReadLine());
            m = Convert.ToInt32(Console.ReadLine());
            int[,] a = new int[m, n];
            Random r = new Random();
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = r.Next(0, 10);
                    Console.Write(a[i, j] + " ");
                }
                Console.WriteLine();



0



dayzfod

16 / 16 / 11

Регистрация: 24.02.2015

Сообщений: 75

04.03.2015, 11:23

2

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
            Console.WriteLine("Введите размерность массива");
            int n, m;
            n = Convert.ToInt32(Console.ReadLine());
            m = Convert.ToInt32(Console.ReadLine());
            int[,] a = new int[m, n];
            Random r = new Random();
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = r.Next(0, 10);
                    Console.Write(a[i, j] + " ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();
            int max;
            for (int i = 0; i < m; i++)
            {
                max=0;
                for (int j = 0; j < n; j++)
                {
                    if(a[i, j] > max) max = a[i, j];
                }
                Console.WriteLine(max);         
            }
            Console.ReadKey();



0



magnusmax

97 / 90 / 61

Регистрация: 20.10.2013

Сообщений: 298

04.03.2015, 11:24

3

C#
1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < m; i++)
            {
                int max = a[i, 0];
                for (int j = 0; j < n; j++)
                {
                    if (a[i, j] > max)
                        max = a[i, j];
 
                }
                Console.WriteLine("max:{0}", max);
            }



0



в C# так не работает(хотя в некоторых других языках так можно написать).

C# язык со статической типизацией https://ru.wikipedia.org/wiki/Статическая_типизация

В вашем случае вы не можете изменить тип вашего массива во время работы программы.

int[,] myArr = new int[4, 5];

Во в этой строчке, слева вы сказали(для упрощения), что переменная myArr принадлежит типу int[]. Теперь туда можно добавлять только числа и исправить это нельзя.

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

Для того, чтобы вам ответили, задайте конкретный вопрос. В данном случае он звучит «Как мне вставить в массив чисел символ?»

Дело в том, что это форум архив знаний, состоящий из вопросов. Вопрос и ответ должен содержать в себе страницу учебника. Представьте, что вы пишете Введение в тему занятия. В ответах пишутся детали, а в комментариях обсуждаете с коллегами, как лучше написать.

Подсказка, как сделать

Если правильно оформите вопрос, я на него отвечу. Пока пусто.

I am trying to find min (by row) and max (by column) element in two-dimensional (4,4) array and then store them in new array (5,5).

That is how it should look for new array (5,5):

1 2 3 4 min
5 6 7 8 min
4 4 4 5 min
3 5 5 6 min
m m m m  0

*m — max

Here it is the entire code:

#include <iostream>
using namespace std;
int main() {
    int A[4][4];/*First array*/
    int i, j;


    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++) {
            cout << "n A[" << i + 1 << "][" << j + 1 << "]=";
            cin >> A[i][j];
        }

    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++)
            cout << A[i][j] << "t";

        cout << "n";
    }
    {
        int min[4];/* find min on each row*/
        for (i = 0; i < 4; i++) {
            min[i] = A[0][i];
            for (j = 1; j < 4; j++) {
                if (min[i] > A[i][j])
                    min[i] = A[i][j];
            }
        }
        int newarr[5][5];/* here i create the new array 5,5)*/
        int max[5] = { 1,2,3,4,5 };
        for (i = 0; i < 4; i++) {
            for (j = 0; j < 4; j++) {
                newarr[i][j] = A[i][j];
                newarr[i][5] = max[i];
            }
        }

        for (j = 0; j < 4; j++)
            newarr[5][j] = min[j];
        cout << newarr[5][j] << "t";
        cout << "n";
}

}

I put random elements to max. Because so far I only test. But once I started my program it show correct only the first array. And where should be the new array it shows zero. Here it is the outcome of the debugging:

5   4   3   1   
5   6   7   9   
4   2   3   9   
4   8   4   6   
0   

How to fix it?
And how to put zero in the last element (as you can see in the first table for the new array).

Изучаю С++ по purecodecpp.com/archives/1158 и нашел задачку в комментариях, которую не могу решить.
Массив заполнил, разделил на одномерные и тут заглох, не знаю как найти наибольшее число.

Вот сам код с условием.

/*
В метании молота состязается n спортcменов. Каждый из них сделал m бросков.
Победителем соревнований объявляется тот спортсмен, у которого максимален наилучший результат по всем броскам.
Таким образом, программа должна найти значение максимального элемента в данном массиве,
а также его индексы (то есть номер спортсмена и номер попытки).
Входные данные
Программа получает на вход два числа n и m, являющиеся числом строк и столбцов в массиве.
Далее во входном потоке идет n строк по m чисел, являющихся элементами массива.

Выходные данные
Программа выводит значение максимального элемента, затем номер строки и номер столбца,
в котором он встречается. Если в массиве несколько максимальных элементов,
то нужно вывести минимальный номер строки, в которой встречается такой элемент,
а если в этой строке таких элементов несколько, то нужно вывести минимальный номер столбца.
Не забудьте, что все строки и столбцы нумеруются с 0.
*/
#include "stdafx.h"
#include <iostream>
#include <string>
#include <ctime>
#include <iomanip> // setw(отступ)

using namespace std;

int main() {

	setlocale(0, "");
	srand(time(NULL));

	const int ROWSIZE = 3;
	const int COLSIZE = 3;

	int arr[ROWSIZE][COLSIZE] = {};
	// заполнение массива с клавиатуры
	/*
	for (int rowNum = 0; rowNum < ROWSIZE; rowNum++) {
		for (int colNum = 0; colNum < COLSIZE; colNum++) {
			cout << "Пожалуйста, введите исходные значения массива: ";
			cout << rowNum + 1 << "-я строка ";
			cout << colNum + 1 << "-я колонка ";
			cin >> arr[rowNum][colNum];
			
		}
	}
	*/
	// Заполняем массив случайными числами
	for (int rowNum = 0; rowNum < ROWSIZE; rowNum++) {
		cout << "Строка " << rowNum + 1 << ": ";
		for (int colNum = 0; colNum < COLSIZE; colNum++) {
			arr[rowNum][colNum] = 1 + rand() % 9;
			cout << setw(2) << arr[rowNum][colNum];
		}
		cout << endl;
	}
	// Разделяем двумерный массив на одномерные
	int row[ROWSIZE]{};
	int col[COLSIZE]{};
	for (int r = 0; r < ROWSIZE; r++) {
		row[r] = arr[r - 1][COLSIZE];
		cout << row[r] << "|";
		
		for (int c = 0; c < COLSIZE; c++) {
			col[c] = arr[c][r];
			//cout << col[c] << "|" << endl;
		}
		
	}
	system("pause");
	return 0;
};

Дан двумерный массив. Помогите пожалуйста найти

максимальный элемент каждой строки

P.S. Если это важно, то пусть массив будет 5х6

 Console.WriteLine("Введите размерность массива");
            int n, m;
            n = Convert.ToInt32(Console.ReadLine());
            m = Convert.ToInt32(Console.ReadLine());
            int[,] a = new int[m, n];
            Random r = new Random();
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = r.Next(0, 10);
                    Console.Write(a[i, j] + " ");
                }
                Console.WriteLine();

Код к задаче: «Двумерный массив. Найти максимальный элемент каждой строки»

Понравилась статья? Поделить с друзьями:
  • Как нас найти значок
  • Как найти часы за которое катер проплывает
  • Как исправить ошибки в инстаграмме
  • Как найти номер лицензионного договора
  • Как найти комнату 26 в лост альфа