Вставить в матрицу два столбца из единиц: один после К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-ым. Вот список действий:
- Пользователю предлагается ввести высоту и ширину матрицы.
- Создается массив с заданными размерами.
- Массив заполняется случайными числами, кроме последних двух столбцов.
- Два последних столбца заменяются единицами.
- Код смещает все строки на одну позицию вправо, чтобы освободить место для нового столбца перед последним.
- Последний столбец сохраняется в отдельной переменной.
- Вставляем сохраненный столбец перед последним.
- Выводим обновленную матрицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д