В заданной матрице циклически сдвинуть элементы каждой строки вправо на число позиций, равное индексу строки - C (СИ)
Формулировка задачи:
Не понимаю, почему при запуске программы компилятор вылетает. Задание - написать программу, которая в двумерном статическом массиве типа int(при этом элементы инициализируются случайным образом) размеров N строк на M столбцов циклически сдвигает элементы каждой строки вправо на число позиций, равное индексу этой строки.
Вот, собственно, и программа:
#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++; } }
Решение задачи: «В заданной матрице циклически сдвинуть элементы каждой строки вправо на число позиций, равное индексу строки»
textual
Листинг программы
unsigned i, j; for (i=0; i<n; i++) for (j=0; j<M; j++) A[i][j]=rand()%100;
Объяснение кода листинга программы
- Объявляются две переменные i и j типа unsigned, которые будут использоваться в цикле.
- Задается условие для цикла for, которое будет выполняться, пока значение переменной i меньше n.
- Внутри цикла for, объявляется вложенный цикл for, который будет выполняться, пока значение переменной j меньше M.
- Внутри вложенного цикла for, каждый элемент матрицы A[i][j] присваивается случайное число от 0 до 99 с помощью функции rand()%100.
- После завершения циклов, матрица A заполнена случайными числами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д