Untitled
unknown
c_cpp
2 years ago
4.1 kB
15
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int main() {
srand(time(0));
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int rows = 5, cols = 6;
int arr[ rows ][ cols ];
int i, j;
for( i = 0; i < rows; ++i ) {
for( j = 0; j < cols; ++j ) {
arr[ i ][ j ] = rand() % 101 - 50;
printf("%5d", arr[ i ][ j ] );
}
puts(""); // printf("\n");
}
// пользователь вводит НОМЕР строки, в которой вычисляем среднее арифметическое
int numRow;
printf("Введите номер строки в которой необходимо найти средне арифметическое значение: ");
scanf("%d", &numRow);
--numRow;
double sum = 0;
for( i = 0; i < cols; ++i )
sum += arr[ numRow ][ i ];
printf("Среднее арифметическое элементов строки № %d = %.2f\n", numRow + 1, sum / cols );
// пользователь вводит НОМЕР столбца, в котором находим минимальный элемент
int numCol;
printf("Введите номер столбца в котором необходимо найти минимальный элемент: ");
scanf("%d", &numCol);
--numCol;
int min = arr[ 0 ][ numCol ];
for( i = 0; i < rows; ++i )
if (min > arr[ i ][ numCol ])
min = arr[ i ][ numCol ];
printf("минимальный элемент столбца № %d = %d\n", numCol + 1, min );
// пользователь вводит номер строки и количество позиций на которое необходимо сдвинуть циклически строку вправо
// цикл ввода данных
int numRowForShift;
printf("Введите номер строки в которой требуется сдвиг в право: ");
scanf("%d", &numRowForShift);
--numRowForShift;
int ShiftLoopRightN;
printf("Введите на какое количество позиций необходимо сдвинуть строку: ");
scanf("%d", &ShiftLoopRightN);
// цикл сдвига
int n, shift = ShiftLoopRightN % cols;
for ( n = 0; n < shift; ++n) {
int last = arr[numRowForShift][cols - 1];
for( j = cols - 1; j > 0; --j ) {
arr[ numRowForShift ] [ j ]= arr[ numRowForShift ][ j - 1 ];
}
arr[ numRowForShift ] [ 0 ] = last;
}
// вывод массива
for( i = 0; i < rows; ++i ) {
for( j = 0; j < cols; ++j ) {
printf("%5d", arr[ i ][ j ] );
}
puts(""); // printf("\n");
}
// пользователь вводит номер столбца и количество позиций на которое необходимо сдвинуть циклически столбец вверх
// цикл ввода данных
int numColForShift;
printf("Введите номер столбца в котором требуется сдвинуть столбец вверх: ");
scanf("%d", &numColForShift);
--numColForShift;
int shiftLoopUpN;
printf("Введите на какое количество позиций необходимо сдвинуть столбец: ");
scanf("%d", &shiftLoopUpN);
// цикл сдвига
int shift2 = shiftLoopUpN % rows;
for ( n = 0; n < shift2; ++n) {
int first = arr[0][numColForShift];
for( i = 0; i < rows-1; ++i ) {
arr[ i ] [ numColForShift ]= arr[ i + 1 ][ numColForShift ];
}
arr[ rows - 1 ] [ numColForShift ] = first;
}
// вывод массива
for( i = 0; i < rows; ++i ) {
for( j = 0; j < cols; ++j ) {
printf("%5d", arr[ i ][ j ] );
}
puts(""); // printf("\n");
}
return 0;
}
Editor is loading...