Матрицы в Си
Матрица это набор объектов, которые хранятся в виде таблицы. У каждой матрицы есть имя, единый тип всех ее объектов.
Обявление матрицы в Си
Также как и переменные матрицу в Си необходимо объявить перед тем как с ней работать, необходимо указать ее тип, ее имя , количество строк -1 и количество столбцов -1. Нумерация столбцов и строк идет с 0.
Тип матрицы Имя [количество строк-1][количество столбцов-1];
int A[8][9] ; / /объявляет целочисленную матрицу с именем A , у которой 9 строк и 10 столбцов
После объявления матрицы, с ее элементами можно работать. Чтобы обратитсья к элементу матрицы нужно указать имя матрицы в первых квадратных скобках указать номер строки, во вторых квадратных скобках указать номер столбца.
A[0][1]=10; // элементу матрицы с номер строки 0 и столбца 1 присваивается значение 10
printf(“%d”, A[0][1]);// выводит на экран элемент матрицы с номер строки 0 и столбца 1
Задание матрицы в Си
Чтобы работать с матрицей в Си, необходимо присвоить начальные значения всех ее элементов.
Для работы со всеми элементами матрицы используется вложенные циклы for
В главном цикле “пробегаем” по всем строкам, а во вложенном “пробегаем” по всем столбцам для каждой строки.
// “пробегаемся” по всем строкам. Нумерация строк с 0.
// вложенный цикл, “пробегаемся” по всем столбцам для Нумерация столбцов с 0.
…Имя матрицы [i][j]…// работаем с элементом матрицы с номером строки i и номером столбца j
Пример программы 22. Программа задаёт целочисленную матрицу размером 10 на 10 и заполняет ее случайными числами в диапазоне, который укажет пользователь и выводит ее на экран.
int a[9][9]; // объявление матрицы 10 на 10
int i,j; // счетчики циклов
int range;// диапазон в котором присваиваются значения элементов матрицы
//ввод диапазона случайных чисел
printf(«введите диапазон заполнения\n»);
// пробегаем по всем строкам
// пробегаем по всем столбцам для данной строки i
a[i][j]=rand() % range+1; // прсиваиваем элементу матрицы a с номером строки i и номер столбца j случайного значения в диапазоне от 0 до 9
// пробегаем по всем строкам
// пробегаем по всем столбцам для данной строки i
// переход на следующую строку
При выводе матрицы на экран в Си для каждой строки мы совершаем переход на следующую строку с помощью оператора printf(» «);
Ввод матрицы в Си с помощью клавиатуры
Пример программы 23. Задаётся матрица размера 3 на 3 с помощью клавиатуры и ищется ее максимальный элемент. Он выводится на экран. При поиске максимального элемента, мы создаем специальную переменную max и присваиваем ей значение элемента a[0][0]. Пробегаем по всем элементам матрицы с помощью вложенного цикла, сравнивая текущий элемент с максимумом, если текущий элемент больше максимума, то максимуму присваивается значение этого элемента.
int a[2][2]; // объявление матрицы 3 на 3
int i,j; // счетчики циклов
int max; // переменная для хранения максимального элемента матрицы
// пробегаем по всем строкам
// пробегаем по всем столбцам для данной строки i
// ввод текущего элемента матрицы с клавиатуры
printf(«Введите элемент матрицы [%d][%d]», i, j);
// переход на следующую строку
// пробегаем по всем строкам
// пробегаем по всем столбцам для данной строки i
// переход на следующую строку
// пробегаем по всем строкам
// пробегаем по всем столбцам для данной строки i
// сравниваем текущий элемент массива с максимумом
// вывод максимального элемента
printf («Максимальный элемент массива %d», max);
Вернуться к содержанию Перейти к теме Работа с файлами в Си
Полезно почитать по теме массивы и матрицы в си
Массивы в си
Игра на си Крестики Нолики
Источник
Матрицы в C++. Общие сведения
Матрица — это двумерный массив, каждый элемент которого имеет два индекса: номер строки и номер столбца, поэтому для работы с элементами матрицы необходимо использовать два цикла. Если значениями параметра первого цикла будут номера строк матрицы, то значениями параметрами второго — столбцы (или наоборот). Обработка матрицы заключается в том, что вначале поочередно рассматриваются элементы первой строки (столбца), затем второй и т.д. до последней.
Перед тем, как приступить к изучению алгоритмов обработки матриц, давайте рассмотрим, как описываются матрицы в C++. Двумерный массив можно объявить так:
тип имя_переменной [n] [m];
Здесь тип определяет тип элементов массива, имя_переменной — имя матрицы, n — количество строк, m — количество столбцов. Строки нумеруются от 0 до n-1, столбцы от 0 до m-1.
Например int h[10] [15];
Выше матрица целых чисел h, состоящая из 10 строк и 15 столбцов (строки нумеруются от 0 до 9, столбцы от 0 до 14).
Для обращения к элементу матрицы необходимо указать ее имя и в квадратных скобках номер строки, затем номер столбца. Например, h[2] [5].
Ввод-вывод матриц
Матрицы, как и одномерные массивы, нужно вводить (выводить) поэлементно. Блок-схема ввода элементов матрицы A[n] [m] изображена ниже:
Код программы на Visual C++ вода-вывода матрицы будет иметь примерно такой вид:
Источник
Вывод элементов матрицы в заданном порядке
Сделать обход матрицы n на n, в определённом порядке и вывести все элементы матрицы в таком порядке (пример):
7 11 14 16
4 8 12 15
2 5 9 13
1 3 6 10
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вывод матрицы в заданном порядке
Дана матрица размера M × N. Вывести ее элементы в следующем по- рядке: первая строка слева направо.
Вывод в строку всех элементов матрицы в заданном порядке следования
написать программу решения задачи: ввода квадратной матрицы и вывода в строку всех ее элементов в.
Ввод квадратной матрицы и вывод в строку всех ее элементов в заданном порядке
написать программу решения следущей задачи:ввода квадратной матрицы и вывода в строку всех ее.
Отображение элементов матрицы в DataGridView в заданном порядке
Друзья!, помогите улучшить прогу, вот вам код: using System; using System.Collections.Generic;.
хм, странно, в Unixe пишет
Segmentation fault (core dumped)
Добавлено через 53 секунды
кстати, программа пишется не на С++, а просто на С
#include
enum
void Prt(int a[maxn][maxn],int size) //print of matrix
<
int i=0, j=0;
while(i =size) printf(«\n»);
>
i++;
j=0;
>
>
int main()
<
FILE *fp=fopen(«m2.txt»,»r»); //GET MATRIX FROM FILE!
char c;
int size;
int a[maxn][maxn];
int i=0,j=0,element=0;
c=getc(fp);
while (c!=EOF)
<
size=(c-‘0’);
i=0;j=0;element=0;
c=getc(fp);
c=getc(fp);
while (i =size)
<
i++;
j=0;
>
c=getc(fp);
>
Prt(a,size);
putchar(‘\n’);
//_____________________________
for(i=size-1; i>=0; i—)
for(j=0; j 0
valeriikozlov, если честно, то это чать задачи ( я про кошмарный ввод данных) (
m2.txt
3
1 2 3
3 4 5
1 3 6
т.е. любая матрица, 1ая строчка — размер
Добавлено через 6 минут
abyr, спасибо, но на чистом си нет таких вещей, как new int и т.д. а тут нужно почти на чистом си (это конечно глупо, но ничего не поделаешь()
Напечатать значения матрицы в заданном порядке следования элементов
Задание: (Язык Си) 7 8 9 10 6 15 16 11 5 14 13 12 4 3 2 1 спасибо.
Вывод элементов матрицы в определенном порядке
Дана квадратная матрица А порядка М. Начиная с элемента А 1,1, вывести её элементы следующим.
Сформировать из матрицы A матрицу B, располагая в ней строки матрицы А в порядке, заданном массивом P
Массив данных A размерностью MxN задано пользователем с клавиатуры вместе со значениями параметров.
вывод алфавита в заданном порядке
нужно сделать вывод букв английского алфавита в виде я смог вывести его в таком порядке, но.
Контейнер list, вывод содержимого в заданном порядке
Как с помощью двунаправленных итераторов вывести содержимое списка в таком порядке: первый.
Источник
Вывод матрицы по столбцам (С++)
Задача:
Дана матрица размера N*M. Вывести ее элементы в следующем порядке: первый столбец сверху вниз, второй столбец снизу вверх, третий столбец сверху вниз и т.д.
Решение:
В этой задаче стоит разделить программу на 3 функции — первая перебирает столбцы и выдает их на вывод двум другим функциям в зависимости от четности индекса столбца.
В этой задаче хотелось бы сделать как показано на рисунке:
в главной функции перебираем строки и если она четная — то вызываем одну функцию, иначе — другую. Однако, такой подход не сработает, ведь выводить матрицу надо по строкам, т.е. сначала надо вывести первую строку всех столбцов, затем — вторую и т.д. Это связано с тем, что мы не можем выводить значения в произвольное место на экране средствами стандартной библиотеки. Поэтому в программе реализуется алгоритм, приведенный на рисунке:
В этой программе надо будет вводить много данных — в матрице из 10 строк и 10 столбцов — уже 100 элементов. Чтобы проверить корректность работы без больших усилий — заполнять матрицу будем случайным образом. Для этого используем функцию rand из стандартной библиотеки. Перед ее применением надо инициализировать генератор случайных чисел каким-то значением — чтобы числа была каждый раз новые используем для этой цели текущее время (функция time ). Более подробно этот вопрос, а также другие способы заполнения матрицы описан в статье.
Массив будем создавать в динамической памяти (на куче) — такой подход позволяет задавать размер массива прямо в процессе исполнения программы. Для выделения памяти используем malloc , а для освобождения — free .
Исходный код программы:
Результаты работы программы приведены на рисунке:
Источник
Вывести 1ю и 3ю строку матрицы
Дано матрицу размерностью m на n, выглядеть должна так
| 4 |
| 3 |
| 6 |
| 4 |
Надо вывести 1ю и 3ю строку, заранее спасибо!
Добавлено через 58 секунд
То есть, надо вывести 4 и 6
Вывести двумерный массив в виде матрицы, найти минимальную строку этой матрицы
Помогите пожалуйста!Как вывести двумерный массив в виде матрицы? И как найти минимальную строку.
Вывести элементы матрицы в строку
Добрый день. Подскажите, пожалуйста, как переделать матрицу в строку?
Решение
-ДоМоВоЙ-, спасибо, а можешь обяснить каким образом так получилось, если не сложно?)
Добавлено через 56 минут
-ДоМоВоЙ-, помоги ещё с сортировкой, этой матрицы, мне надо через функцию, у меня не получается вот:
Как вывести строку матрицы?
Надо вывести строку и сделать с ним исчисление? Ну допустим надо вывести первый столбик от 2 до 4
Дана матрица целых чисел размером 4×3. Отсортировать каждую строку матрицы по убыванию. Вывести содержимое матрицы до обработки и после обработки
Дана матрица целых чисел размером 4×3. Отсортировать каждую строку матрицы по убыванию. Вывести.
Вывести строку матрицы с максимальным элементом
я ввожу значения массива и если у меня максимальный или минимальный элемент находиться в первой.
Вывести на экран первую строку матрицы
Двумерный массив размерностью (2×3) заполнить числами. Вывести на экран первую строку массива с.
Источник