Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С (для ИВТ) / Готовые лабы С / Лаба5 / Laba 5 (1)
.c#include <stdio.h>
#include <stdlib.h>
#define ROWS_A 10
#define COLS_A 15
#define ROWS_B 15
#define COLS_B 10
// Функция проверки, является ли число совершенным
int isPerfect(int num) {
if (num < 2) return 0;
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
sum += i;
if (i != num / i) {
sum += num / i;
}
}
}
return (sum == num);
}
// Функция ввода матрицы A
void inputMatrixA(int matrix[ROWS_A][COLS_A]) {
printf("Enter matrix A (%dx%d):\n", ROWS_A, COLS_A);
for (int i = 0; i < ROWS_A; i++) {
for (int j = 0; j < COLS_A; j++) {
printf("A[%d][%d] = ", i, j);
scanf("%d", &matrix[i][j]);
}
}
}
// Функция ввода матрицы B
void inputMatrixB(int matrix[ROWS_B][COLS_B]) {
printf("Enter matrix B (%dx%d):\n", ROWS_B, COLS_B);
for (int i = 0; i < ROWS_B; i++) {
for (int j = 0; j < COLS_B; j++) {
printf("B[%d][%d] = ", i, j);
scanf("%d", &matrix[i][j]);
}
}
}
// Функция вывода матрицы A
void printMatrixA(int matrix[ROWS_A][COLS_A], const char* name) {
printf("\nMatrix %s (%dx%d):\n", name, ROWS_A, COLS_A);
for (int i = 0; i < ROWS_A; i++) {
for (int j = 0; j < COLS_A; j++) {
printf("%4d", matrix[i][j]);
}
printf("\n");
}
}
// Функция вывода матрицы B
void printMatrixB(int matrix[ROWS_B][COLS_B], const char* name) {
printf("\nMatrix %s (%dx%d):\n", name, ROWS_B, COLS_B);
for (int i = 0; i < ROWS_B; i++) {
for (int j = 0; j < COLS_B; j++) {
printf("%4d", matrix[i][j]);
}
printf("\n");
}
}
// Функция замены совершенных чисел нулями в матрице A
void replacePerfectNumbersA(int matrix[ROWS_A][COLS_A]) {
for (int i = 0; i < ROWS_A; i++) {
for (int j = 0; j < COLS_A; j++) {
if (isPerfect(matrix[i][j])) {
matrix[i][j] = 0;
}
}
}
}
// Функция замены совершенных чисел нулями в матрице B
void replacePerfectNumbersB(int matrix[ROWS_B][COLS_B]) {
for (int i = 0; i < ROWS_B; i++) {
for (int j = 0; j < COLS_B; j++) {
if (isPerfect(matrix[i][j])) {
matrix[i][j] = 0;
}
}
}
}
int main() {
int A[ROWS_A][COLS_A];
int B[ROWS_B][COLS_B];
// Ввод матриц
inputMatrixA(A);
inputMatrixB(B);
// Вывод исходных матриц
printMatrixA(A, "A (original)");
printMatrixB(B, "B (original)");
// Замена совершенных чисел
replacePerfectNumbersA(A);
replacePerfectNumbersB(B);
// Вывод результатов
printMatrixA(A, "A (after replacement)");
printMatrixB(B, "B (after replacement)");
return 0;
}
Соседние файлы в папке Лаба5
