Поменять местами элементы двумерного массива
По заданию нужно сформировать двумерный массив , найти в нём max выше главной диагонали/min ниже главной эл-ты и поменять их местами.
Не получается обмен. Его нужно как-то через индексы делать(?). Как поменять найденные эл-ты местами?
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace laba { class Program { static void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } static void Main(string[] args) { Int32 i, j, max, min; Int32[,] a = new int[5, 5]; Random r = new Random(); max = 0; min = 20; for (i = 0; i 5; i++) { for (j = 0; j 5; j++) { a[i, j] = r.Next(5, 20); Console.Write("", a[i, j]); } Console.WriteLine(); } for (i = 0; i 5; i++) { for (j = 0; j 5; j++) { if (i j) { if (a[i, j] > max) { max = a[i, j]; } } } } Console.WriteLine(" max:", max); for (i = 0; i a.GetLength(0); i++) { for (j = 0; j a.GetLength(1); j++) { if (a[i, j].Equals(max)) { Console.Write("i max = " + (i+1) + ", j max = " + (j+1)); i = a.GetLength(0); break; } } } for (i = 0; i 5; i++) { for (j = 0; j 5; j++) { if (i > j) { if (a[i, j] min) { min = a[i, j]; } } } } Console.WriteLine("\n min:", min); for (i = 0; i a.GetLength(0); i++) { for (j = 0; j a.GetLength(1); j++) { if (a[i, j].Equals(min)) { Console.Write("i min = " + (i+1) + ", j min = " + (j+1)); i = a.GetLength(0); break; } } } /* for (i = 0; i < a.GetLength(0); i++) max = 0; for (int j = 1; j < a.GetLength(1); j++) if (a[i, indMax] < a[i, j]) max = j; Swap (ref a[i, indMax], ref a[i, indMin]); > Console.WriteLine("Итоговый массив"); for (int i = 0; i < a.GetLength(0); i++) for (int j = 0; j < a.GetLength(1); j++) Console.Write("\t" + a[i, j]); Console.WriteLine();*/ Console.ReadKey(); } } }
Поменять местами элементы массива
Поменять местами максимальный и минимальный элементы массива.
Вот то, что у меня получилось написать, не знаю, что надо в цикл дописать, чтобы он местами менял максимальный и минимальный, помогите пожалуйста
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 28 29 30 31
static void Main(string[] args) { int[] A = new int[9]; int min = A[0]; int max = A[0]; Random r = new Random(); Console.Write("Массив из 9 элементов:\n\n"); for (int i = 0; i 9; i++) { A[i] = r.Next(-100, 100); Console.Write("A[" + i + "] = "); Console.Write(A[i] + "\t"); if (A[i] min) { min = A[i]; } if (A[i] > max) { max = A[i]; } Console.Write("\tA[" + i + "] = "); Console.Write(A[i] + "\n"); } Console.Write("\nМинимальный элемент: ", min); Console.Write("\nМаксимальный элемент: ", max); Console.ReadKey(); }
Поменять местами элементы массива
Добрый вечер. Нужно сделать задание. Написать программу. Существует массив, в котором имеется.
Поменять местами соседние элементы массива b
поменять местами соседние элементы массива b,содержащего 10 элементов, т е 1-й со 2-м, 3-й с 4-м и.
Поменять местами элементы двумерного массива
По заданию нужно сформировать двумерный массив , найти в нём max выше главной диагонали/min ниже.
Как поменять элементы массива местами?
Нужно поменять min и max местами using System; class HelloWorld < static void Main() < .
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 28 29
static void Main(string[] args) { int[] arr = { 1, 2, 3, 4, 5, 6, 0, 8, 9 }; int min = int.MaxValue; int min_index = -1; int max = int.MinValue; int max_index = -1; for (int i = 0; i arr.Length; i++) { if (arr[i] > max) { max = arr[i]; max_index = i; } if (arr[i] min) { min = arr[i]; min_index = i; } } Console.WriteLine("Массив до: " + string.Join(" ",arr) + Environment.NewLine); Console.WriteLine("Макс. эл-т: " + max + "; Индекс: " + max_index +";"); Console.WriteLine("Мин. эл-т: " + min + "; Индекс: " + min_index + ";" + Environment.NewLine); int buf_min = arr[min_index]; arr[min_index] = max; arr[max_index] = buf_min; Console.WriteLine("Массив после: " + string.Join(" ", arr)); Console.ReadKey(); }
metoo,
1) начальные значения переменным min и max нужно задавать после ввода элементов массива
2) кроме min и max нужны переменные для хранения индексов максимального и минимального элементов (честно говоря, только они и нужны, так как значения максимума и минимума можно получить через эти индексы)
3) ввод и поиск минимума — максимума нужно делать в разных циклах
4) для замены нужна некая временная переменная. Например, если нужно обменять местами значения переменных a и b: temp=a, a=b, b=temp
5) вывод массива после замены значений нужно выполнять в третьем цикле
Добавлено через 2 минуты
Пока я все это набирал, несколько раз приходила мысль, что приведя готовую программу, можно было бы сэкономить некоторое количество времени и букв
Сообщение от Даценд
Поменять местами элементы массива
Добрый вечер. Нужно сделать задание.
Написать программу. Существует массив, в котором имеется четное количество элементов. Это четное количество задается пользователем (предполагается, что пользователь умный и не станет указывать нечетное). Далее пользователем задаются элементы этого массива. После того, как массив задан, элементы в нем меняются так, как показано в следующем примере:
Пример исходного массива: 1 2 3 4 5 6 7 8
Пример измененного массива: 2 1 4 3 6 5 8 7
(Выводить полученный массив можно как в строку, так и в столбик)
Поменять местами элементы массива
Поменять местами максимальный и минимальный элементы массива. Вот то, что у меня получилось.
Как поменять элементы массива местами?
Нужно поменять min и max местами using System; class HelloWorld < static void Main() < .
Поменять местами элементы двумерного массива
По заданию нужно сформировать двумерный массив , найти в нём max выше главной диагонали/min ниже.
Поменять местами соседние элементы массива b
поменять местами соседние элементы массива b,содержащего 10 элементов, т е 1-й со 2-м, 3-й с 4-м и.
for(int i = 0;i arr.Length - 1;i+=2) { int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1]=temp; }
Сообщение от maghattab
1 2 3 4 5 6 7 8 9 10 11 12 13
using System; public class Program { public static void Main() { for(int i = 0;i arr.Length - 1;i+=2) { int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1]=temp; }
Сообщение было отмечено maghattab как решение
Решение
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 28 29 30 31 32
using System; class Program { static void Main() { Console.Write("Введите размер массива: "); int size = int.Parse(Console.ReadLine()); int[] arr = new int[size]; // Заполнение массива for (int i = 0; i arr.Length; i++) { Console.Write(i + " - введите значение: "); arr[i] = int.Parse(Console.ReadLine()); } // Замена в массиве for (int i = 0; i arr.Length - 1; i += 2) { int temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } // Вывод массива на экран for (int i = 0; i arr.Length; i++) Console.Write(arr[i] + " "); Console.ReadKey(); } }
Сообщение от maghattab
эту программу мне нужно на сайте dotnetfiddle сдать.
я вставляю код туда и мне выдаёт эту ошибку
Fatal Error: Console.ReadKey() is not supported in .NET Fiddle.
Сообщение от maghattab
честно говоря вы не первый, кто решает задачи на сайте. Проблема в том, что Visual Studio всегда выдает правильные ответы, на сайтах постоянно какие то ошибки. Был один случай когда один пользователь данного форума решал задачу на сайте — ему дали 5 разных ответов 5 разных пользователей, эти коды работают в Visual Studio, но не работают на сайте. С тех пор я пас мучиться с решениями на сайтах. Проблема из за того, что не все возможности которые предоставляет VS есть на сайтах. В вашем случаи сайт не знает что такое Console.ReadKey(), просто удалите 30 строку из кода, должно помочь, но не обещаю.
Поменять местами наибольший и наименьший элементы массива
Дан массив действительных чисел. Поменять местами наибольший и наименьший элементы данного массива.
Поменять местами минимальный и максимальный элементы массива
Всем приятного для , прошу вас помочь . Нужно cделать задачу в консольном режиме C# Итак вот.
Поменять местами максимальный и минимальный элементы массива
Помогите, пожалуйста, написать программу, суть которой заключается в том, что бы создать массив.
Поменять местами наибольший и наименьший элементы массива
Прошлую задачу сделала. Подскажите тут, пожалуйста =) Поменять местами наибольший и наименьший.
Поменять местами максимальный и минимальный элементы массива
Всем привет посмотрите, пожалста, последнюю часть кода — вроде все верно, но массив печатается.
Дано 2 массива с размером [4,4], поменять местами его элементы
дано 2 массива с размером поменять местами между его элементами. 1 с 1, 2 со 2 и т. д. Спасибо за.
Как поменять элементы массива местами?
Поменять местами элементы массива
Поменять местами максимальный и минимальный элементы массива. Вот то, что у меня получилось.
Поменять местами элементы массива
Добрый вечер. Нужно сделать задание. Написать программу. Существует массив, в котором имеется.
Поменять местами элементы двумерного массива
По заданию нужно сформировать двумерный массив , найти в нём max выше главной диагонали/min ниже.
Сообщение от DreamForest
Сообщение от Shinsengumi
Сохраняйте не значения, а их индексы.
1 2 3 4 5 6 7 8 9 10 11 12
min=0; for (i=1;id.Length;i++){ if (d[min]d[i]){ min=i; } } max=0; for (i=1;id.Length;i++){ if (d[max]>d[i]){ max=i; } }
Поменять местами соседние элементы массива b
поменять местами соседние элементы массива b,содержащего 10 элементов, т е 1-й со 2-м, 3-й с 4-м и.
Поменять местами максимальный и минимальный элементы массива
Помогите, пожалуйста, написать программу, суть которой заключается в том, что бы создать массив.
Поменять местами минимальный и максимальный элементы массива
Всем приятного для , прошу вас помочь . Нужно cделать задачу в консольном режиме C# Итак вот.
Поменять местами наибольший и наименьший элементы массива
Прошлую задачу сделала. Подскажите тут, пожалуйста =) Поменять местами наибольший и наименьший.
Обмен строк/столбцов массива местами
Как в двумерном массиве тасовать строки/столбцы местами? В си я просто менял указатели, а тут чё делать?
В матрицах найти и поменять местами минимальный элемент среди чётных столбцов и нечётных строк соответственно
В матрицах A, B найти и поменять местами минимальный элемент среди чётных столбцов и нечётных строк.
Даны два двумерных массива из 12 строк и 28 столбцов
Даны два двумерных массива из 12 строк и 28 столбцов. В первом из них записана температура воздуха.
Заполнение двумерного массива, сумма строк и столбцов
Здравствуйте, решаю всякое на сайтах по плюсам, вот тут додуматься не могу, как реализовать все это.
Задание пользователем количества строк и столбцов двумерного массива и ввод элементов с клавиатуры
Здравствуйте! С# начал совсем недавно изучать. Суть задания в том, чтобы пользователь во-первых.
Сообщение от Ваю
Сообщение от Почтальон
Сообщение от Ваю
Как в двумерном массиве тасовать строки/столбцы местами? В си я просто менял указатели, а тут чё делать?
к примеру меняет местами 1 и 3 строку
for(int i = 0; i matrix.GetLength(1); i++) { (matrix[1, i], matrix[3, i]) = (matrix[3, i], matrix[1, i]); }
hamin, это тупой обмен значений двух строк, я говорю, что в си можно просто поменять местами два указателя и всё сразу поменяется. Вопрос заключается в том, как тут сделать аналогичное? А если этот массив занимает всё место в оперативе — тоже знаиматься этой бредятиной с переписыванием всех значений, а не двух единственных адресов в указателях?
Сообщение от Ваю
int[][] a = new int[2][]; (a[0], a[1]) = (a[1], a[0]);
Сообщение от Ваю
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 28 29 30 31 32 33 34 35 36 37 38 39 40
#include #include #include int main() { int **Arr; int *p; int i, j, x = 10, y = 15; // выделяем память Arr = (int**)malloc(x * sizeof(int*)); for (i = 0; i x; ++i) { Arr[i] = (int*)malloc(y * sizeof(int)); } // заполняем рандомными данными 0..99 и выводим на экран std::srand((unsigned int)time(NULL)); for (i = 0; i x; ++i) { for (j = 0; j y; ++j) { Arr[i][j] = rand() % 100; printf("%3u", Arr[i][j]); } puts("\n"); } puts(""); // меняем 1 и 3 строки местами p = Arr[1]; Arr[1] = Arr[3]; Arr[3] = p; // выводим массив на экран после обмена строк for (i = 0; i x; ++i) { for (j = 0; j y; ++j) { printf("%3u", Arr[i][j]); } puts("\n"); } puts(""); std::system("pause"); // освобождаем память for (i = 0; i x; ++i) free(Arr[i]); free(Arr); return EXIT_SUCCESS; }
До: 31 44 63 7 41 0 44 65 35 15 58 32 90 6 92 27 43 50 0 96 59 80 43 26 89 12 31 97 57 15 69 83 12 52 1 77 45 38 44 71 54 70 28 24 75 42 10 36 61 14 97 95 79 86 93 82 82 97 46 80 После: 31 44 63 7 41 0 44 65 35 15 58 32 90 6 92 42 10 36 61 14 97 95 79 86 93 82 82 97 46 80 69 83 12 52 1 77 45 38 44 71 54 70 28 24 75 27 43 50 0 96 59 80 43 26 89 12 31 97 57 15
Сообщение от КОП