Вставить в матрицу два столбца из единиц: один после К1-го столбца, второй - перед К1-ым - C (СИ)
Формулировка задачи:
дан двумерный массив, вставить в него два столбца из чисел 1: один после К1-го столбца. второй-перед К1-м столбом.
Решение задачи: «Вставить в матрицу два столбца из единиц: один после К1-го столбца, второй - перед К1-ым»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> int main() { setlocale(LC_ALL, "Rus"); printf(" Введите высоту массива: "); int hight; // Высота >> Строки scanf("%d", &hight); printf(" Введите ширину массива: "); int weight; // Ширина >> Столбцы scanf("%d", &weight); int arr[hight][weight]; // Массив printf("Идет заполнение массива случайными числами...\n"); srand(time(0)); // Для rand()%N int i, j; // Для перебора строк и столбцов for( i = 0; i < hight; i++){ for( j = 0; j < weight; j++){ if((j == weight-1) || (j == weight-2)){ arr[i][j] = 1; printf(" %2d", arr[i][j]); } else{ // Если не последняя или предпоследняя строка... arr[i][j] = 2 + rand()%9; // заполняем случайным числом от 2 до 10... printf(" %2d", arr[i][j]); // выводим случайное число... } } printf("\n"); } int k = 1; printf("\nk = %d ( 0 - в массиве )\n\n", k); /* После k1 столбца */ for( i = 0; i < hight; i++){ int tmp = arr[i][weight-1]; // Сохраняем последняю ячейку строки for( j = weight -1; j > k; j--){ arr[i][j] = arr[i][j-1]; // Смещаем строку на 1 вправо } arr[i][j] = tmp; // Вставляем сохраненую ячейку } /* Перед k1 столбца */ for( i = 0; i < hight; i++){ // тут так же... int tmp = arr[i][weight-1]; // ... for( j = weight -1; j > k-1; j--){ arr[i][j] = arr[i][j-1]; // ... } arr[i][j] = tmp; // ... } /* Результат */ for( i = 0; i < hight; i ++){ for( j = 0; j < weight; j++) printf(" %2d", arr[i][j]); printf("\n"); } return 0; }
Объяснение кода листинга программы
Код добавляет два столбца с единицами в матрицу. Один столбец добавляется после К1-го столбца, а второй - перед К1-ым. Вот список действий:
- Пользователю предлагается ввести высоту и ширину матрицы.
- Создается массив с заданными размерами.
- Массив заполняется случайными числами, кроме последних двух столбцов.
- Два последних столбца заменяются единицами.
- Код смещает все строки на одну позицию вправо, чтобы освободить место для нового столбца перед последним.
- Последний столбец сохраняется в отдельной переменной.
- Вставляем сохраненный столбец перед последним.
- Выводим обновленную матрицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д