tune 0 / 0 / 1 Регистрация: 04.03.2015 Сообщений: 26 |
||||
1 |
||||
Двумерный массив. Найти максимальный элемент каждой строки04.03.2015, 07:01. Показов 19727. Ответов 2 Метки нет (Все метки)
Дан двумерный массив. Помогите пожалуйста найти максимальный элемент каждой строки P.S. Если это важно, то пусть массив будет 5х6
0 |
dayzfod 16 / 16 / 11 Регистрация: 24.02.2015 Сообщений: 75 |
||||
04.03.2015, 11:23 |
2 |
|||
0 |
magnusmax 97 / 90 / 61 Регистрация: 20.10.2013 Сообщений: 298 |
||||
04.03.2015, 11:24 |
3 |
|||
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();