в C# так не работает(хотя в некоторых других языках так можно написать).
C# язык со статической типизацией https://ru.wikipedia.org/wiki/Статическая_типизация
В вашем случае вы не можете изменить тип вашего массива во время работы программы.
int[,] myArr = new int[4, 5];
Во в этой строчке, слева вы сказали(для упрощения), что переменная myArr принадлежит типу int[]. Теперь туда можно добавлять только числа и исправить это нельзя.
Вы дали очень мало описания и возможно не прочитали, как задавать вопросы. Нужно задать конкретный вопрос, ибо в данный момент он звучит “Я ничего не сделал, сделайте за меня”(поэтому вам ставят минусы, а не потому что вопрос плохой).
Для того, чтобы вам ответили, задайте конкретный вопрос. В данном случае он звучит “Как мне вставить в массив чисел символ?”
Дело в том, что это форум архив знаний, состоящий из вопросов. Вопрос и ответ должен содержать в себе страницу учебника. Представьте, что вы пишете Введение в тему занятия. В ответах пишутся детали, а в комментариях обсуждаете с коллегами, как лучше написать.
Подсказка, как сделать
Если правильно оформите вопрос, я на него отвечу. Пока пусто.
Всем доброго времени суток. Помогите, пожалуйста, с задачей…
Инициализировать массив n x n. n вводит пользователь. Найти максимальный элемент в массиве и его положение: номер строки, номер столбца.
Собственно, вот мои наработки, но не знаю как определить положение… Заранее спасибо!
C++ | ||
|
Изучаю С++ по 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;
};
В общем, я вот так записала программу но что- то в ней не то, потому что она не максимальный выводит
var a:array[1..10,1..5] of integer;
i,j,max:integer;
begin
randomize;
for i:=1 to 10 do
begin
for j:=1 to 5 do
begin
a[i,j]:=random(50);
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to 10 do
max:=a[i,1];
begin
for j:=1 to 5 do
begin
if a[i,j]>max then max:=a[i,j];
end;
writeln(‘max=’,max);
end;
writeln;
end.
Все равно что то не то. Вот какой ответ получаем в результате программы (см. ниже)
20 30 33 46 22
27 22 32 23 31
0 21 43 34 30
16 41 24 2 46
36 10 46 18 24
46 4 23 7 25
0 36 36 27 10
14 10 39 41 33
21 40 42 4 47
47 41 35 14 7
max=46
max=46
max=46
max=46
max=46
max=46
max=46
max=46
max=47
max=47.Есть еще у кого нибудь варианты?
А нет все все спссибо та прога правильна просто надо было вывод поставить перед последним эндом!!)))
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).