Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 26.03.2017
Сообщений: 8
1

Удалить из матрицы А (7×5) все строки, сумма элементов которых четна, а из матрицы В (6×8) – строки, сумма эле

19.04.2017, 15:20. Показов 3053. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Удалить из матрицы А (7×5) все строки, сумма элементов
которых четна, а из матрицы В (6×8) – строки, сумма элементов
которых нечетна.
Если не сложно напишите её)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2017, 15:20
Ответы с готовыми решениями:

Удалить из матрицы А (7×5) все строки, сумма элементов которых четна, а из матрицы В (6×8) – строки, сумма эле
2. Удалить из матрицы А (7×5) все строки, сумма элементов которых четна, а из матрицы В (6×8)...

Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции)
Удалить из матрицы А (7х5) все строки, сумма элементов которых четна, а из матрицы В (6х8) –...

Дана квадратная матрица A(2×N, 2×N). Найти квадрат 2×2, в котором сумма значений элементов минимальна
Дана квадратная матрица A(2×N, 2×N). Найти квадрат 2×2, в котором сумма значений элементов...

Дана вещественная матрица размера N×M. Увеличить в K раз элементы двух строк матрицы, сумма элементов которых минимальна
Дана вещественная матрица размера N×M. Увеличить в K раз элементы двух строк матрицы, сумма...

1
131 / 131 / 157
Регистрация: 11.04.2015
Сообщений: 343
19.04.2017, 17:08 2
Лучший ответ Сообщение было отмечено rush1808 как решение

Решение

вот для матрицы А(7х5)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include <Windows.h>
#include <time.h>
 
 
#define BORDER_HIGH     100
#define BORDER_LOW        1
 
int COLS = 7;
static int ROWS = 5;
 
void CreateMatrix(int **Matrix, int cols, int rows, int *SumArray);
void PrintMatrix(int **Matrix, int cols, int rows);
void RemoveRow(int** matrix, int row);
 
int main(void)
{   
    srand(time(NULL));
    int i;
    int **Matrix = (int **)malloc(ROWS * sizeof(int *));
    int *SumArray = calloc(ROWS, sizeof(int));
 
    for (i = 0; i<ROWS; i++)
        Matrix[i] = (int *)malloc(COLS * sizeof(int));
 
    printf("Input matrix: \n");
    CreateMatrix(Matrix, COLS, ROWS, SumArray);
    printf("\n\n");
 
    for (i = ROWS; i >= 0; i--) {
        if (SumArray[i] % 2 == 0) {
            RemoveRow(Matrix, i);
        }
    }
    
    printf("\n\nResultant matrix: \n");
    PrintMatrix(Matrix, COLS, ROWS);
 
    free(Matrix);
    free(SumArray);
    system("pause");
    return 0;
}
 
 
void CreateMatrix(int **Matrix, int cols, int rows, int *SumArray) {
    int i, j;
    for (i = 0; i < rows; i++) {
        for (j = 0; j < cols; j++) {
            Matrix[i][j] = rand() % (BORDER_HIGH + 1 - BORDER_LOW) + BORDER_LOW;
            SumArray[i] += Matrix[i][j];
            printf("%3d ", Matrix[i][j]);
        }
        printf("| %d   \n", SumArray[i]);
    }
}
 
void PrintMatrix(int **Matrix, int cols, int rows) {
    int i, j;
    for (i = 0; i < rows; i++) {
        for (j = 0; j < cols; j++) {
            printf("%3d ", Matrix[i][j]);
        }
        printf("\n");
    }
}
 
void RemoveRow(int** matrix, int row) {
    ROWS--;
    free(matrix[row]);
    while (row<ROWS)
    {
        //move data up
        matrix[row] = matrix[row + 1];
        row++;
    }
}
для матрицы В просто поменяй переменные
C
1
2
int COLS = 7;
static int ROWS = 5;
на
C
1
2
int COLS = 6;
static int ROWS = 8;
и
C
1
2
3
if (SumArray[i] % 2 == 0) {
            RemoveRow(Matrix, i);
        }
на
C
1
2
3
if (SumArray[i] % 2 != 0) {
            RemoveRow(Matrix, i);
        }
Добавлено через 30 минут
строку 39 еще
C
1
free(Matrix);
нужно заменить на
C
1
2
3
4
5
6
    for (i = 0; i<ROWS; i++)
    {
        free(Matrix[i]);
    }
 
    free(Matrix);
0
19.04.2017, 17:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2017, 17:08
Помогаю со студенческими работами здесь

Даны целочисленные матрицы A (4×5) и B (5×7). В первой строке матрицы A найти число нулевых элементов
Даны целочисленные матрицы A (4×5) и B (5×7). В первой строке матрицы A найти число нулевых...

Переписать элементы матрицы А в матрицу В, обнуляя все строки, сумма элементов которых нечётная
Написать программу, осуществляющую работу с целочислеными матрицами в соответствии с индивидуальным...

Задана вещественная матрица N×M. Переставить строки матрицы в порядке убывания минимальных элементов строк матрицы
Задана вещественная матрица N×M. Переставить строки матрицы в порядке убывания минимальных...

Удалить все столбцы матрицы, у которых сумма элементов по строкам минимальна
Дана квадратная матрица целых чисел размером N*N (N – вводим с клавиатуры). Удалить все столбцы...

Удалить все столбцы матрицы, у которых сумма элементов по строкам минимальна
Дана квадратная матрица целых чисел размером N*N ( N констан-та), заданная случайным образом,...

Удалить все строки, сумма элементов которых является двузначным числом
Дан массив, содержащий целые числа, размерностью n на n. Использовать дополнительные массивы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru