Вопрос задан 18.06.2023 в 13:41. Предмет Информатика. Спрашивает Сухотенко Валерия.

100 БАЛЛОВ!!! Язык С(не С++!!!) Написать программу, которая в двумерном массиве типа int

размером N строк и M столбцов циклически сдвигает элементы каждой строки вправо на число позиций, равное индексу этой строки.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ахрамович Яна.

Ответ:

include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>

const unsigned M=5;

 

void init_array(int A[][M], unsigned n);

void print_of_array(int A[][M], unsigned n);

void swap (int *pa, int *pb);

void changing_of_array(int A[][M], unsigned n);

int main(){

   const unsigned N=5;

       int A[N][M];

       init_array(A,N);

       print_of_array(A,N);

       printf("\n");

               printf("\n");

       changing_of_array(A,N);

       print_of_array(A,N);

       getchar();

       return 0;

   

}

 

void init_array(int A[][M], unsigned n){

   for (unsigned i=0; i<n; i++)

   for (unsigned j=0; j<M;j++)

   A[i][j]=rand()%100;

}

void print_of_array(int A[][M], unsigned n){

   for (unsigned i=0; i<n; i++){

   for (unsigned j=0; j<M;j++)

       printf("%5d", A[i][j]);

   printf("\n");}

}

void swap(int *pa, int *pb){

   int temp=*pa;

   *pa=*pb;

   *pb=temp;

   return;

                                     }

void changing_of_array(int A[][M], unsigned n)  {

   unsigned l=1;

   for (unsigned i=1; i<n; i++)              {

   for (unsigned j=M-1; j+1>0; j--){

       if ((j-l)<0) break;

   swap(&A[i][j],&A[i][j-l]);            }

l++;    

                                                            }

   

                                                                 }

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам написать программу на языке программирования C, которая выполняет циклический сдвиг элементов каждой строки вправо на число позиций, равное индексу этой строки. Вот пример кода:

```c #include

// Функция для циклического сдвига элементов вправо в массиве void cyclicShift(int array[], int size, int shift) { int temp[size]; // Выполняем сдвиг for (int i = 0; i < size; i++) { temp[(i + shift) % size] = array[i]; } // Копируем результат обратно в исходный массив for (int i = 0; i < size; i++) { array[i] = temp[i]; } }

// Функция для циклического сдвига элементов каждой строки в матрице void cyclicShiftMatrix(int matrix[][M], int N, int M) { // Проходим по каждой строке матрицы for (int i = 0; i < N; i++) { // Вызываем функцию циклического сдвига для каждой строки cyclicShift(matrix[i], M, i); } }

// Функция для вывода двумерной матрицы void printMatrix(int matrix[][M], int N, int M) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } }

int main() { // Задаем размеры матрицы int N, M; printf("Введите количество строк (N): "); scanf("%d", &N); printf("Введите количество столбцов (M): "); scanf("%d", &M);

// Создаем двумерный массив int matrix[N][M];

// Вводим элементы матрицы printf("Введите элементы матрицы:\n"); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { scanf("%d", &matrix[i][j]); } }

// Вызываем функцию циклического сдвига cyclicShiftMatrix(matrix, N, M);

// Выводим результат printf("Результат циклического сдвига:\n"); printMatrix(matrix, N, M);

return 0; } ```

Этот код включает три функции: `cyclicShift`, `cyclicShiftMatrix`, и `printMatrix`. Функция `cyclicShift` выполняет циклический сдвиг элементов одномерного массива. Функция `cyclicShiftMatrix` применяет `cyclicShift` к каждой строке двумерной матрицы. Функция `printMatrix` используется для вывода результатов. Вы можете скомпилировать и выполнить этот код на своем компьютере.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос