dmi92
1

Удалить строку матрицы с максимальным номером, в которой все элементы четны и упорядочены по возрастанию

05.12.2010, 21:06. Показов 1332. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Преобразовать матрицу А (N x M) в матрицу Б, путем удаления строки с максимальным номером, в которой все элементы четны и упорядочены по возрастанию.
Программа работает с ошибками. Дальше мозгов не хватает додумать... Помогите пожалуйста дописать

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
#include <stdio.h>
#define N 20 // Строки
#define M 20 // Столбцы
 
int main()
{
    int A[N][M], B[N][M], n, m, i, j;
    int b = 0, l = 0;
    printf("Strok: ");
    scanf("%d", &n);
    printf("Stolbcov: ");
    scanf("%d", &m);
    
    // Проверка
    if (n > N || m > M) {
        printf("Oshibka\n");
        return 0;
    }
    
    // Ввод матрицы А
    printf("Vvedite matricu A %dx%d:\n", n, m);
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            scanf("%d", &A[i][j]);
        }
    }
    
    // Вывод матрицы А
    printf("\nMatrica A:\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("%d ", A[i][j]);
        }
        printf("\n");
    }
    
    // Проверка на четность и упорядоченность по возростанию
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            if ((A[i][j]%2 == 0) && (A[i][j] < A[i][j+1])) {
                b = i;
            }
            else {
                break;
            }
        }
    }
    
    // Вывод матрицы Б
    printf("\nMatrica B:\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            if (b == i) {
                l++;
                break;
            }
            else {
                B[i-l][j] = A[i][j];
                printf("%d ", B[i-l][j]);
            }
        }
        printf("\n");
    }
    return 1;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2010, 21:06
Ответы с готовыми решениями:

Найти в матрице первую строку, все элементы которой упорядочены по возрастанию
Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить...

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

Найти в матрице первую строку, все элементы которой упорядочены по возрастанию
Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить...

Найти в матрице первую строку, все элементы которой упорядочены по возрастанию
Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить...

1
23 / 13 / 47
Регистрация: 23.03.2013
Сообщений: 157
03.01.2015, 16:14 2
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <stdlib.h>
 
unsigned short i;
unsigned short j;
 
short Number_Line(unsigned int**, unsigned int, unsigned int);
void Print_Arr(   unsigned int**, unsigned int, unsigned int);
 
void Matrix_Processing(unsigned int** A, unsigned int** B, unsigned int (m), unsigned int n)
{
    short k = Number_Line(A,m,n);
    unsigned short Swap = 0;
    if(k<0)
        printf("%s","Строки с такими свойствами нет в матрице!!!  \n");
    else
    {
        for(i=0; i< m; i++, Swap++)
        {
            for(j=0; j<n; j++)
            {
                if(i==k)
                    i++;
                if(Swap<m-1)
                B[Swap][j] = A[i][j];
            }
        }
        printf("%s","\nThe recieved matrix B looks like: \n");
        Print_Arr(B, m-1, n);
    }
}
 
void Print_Arr(unsigned int** A, unsigned int m, unsigned int n)
{
    i=0;
    for(; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            if(A[i][j]<10)
                printf("%d %s",A[i][j],"   ");
            else   if(A[i][j]<100)
                printf("%d %s",A[i][j],"  ");
            else   if(A[i][j]>99)
                printf("%d %s",A[i][j]," ");
        }
        printf(" \n");
    }
}
 
short Number_Line(unsigned int** A, unsigned int m, unsigned int n)
{
    short Number_of_line =-1;
 
    for(i=(m-1); i!=0xFFFF; i--)
    {
        for(j=0; j<n; j++)
        {
            if (A[i][j]%2!=0)
            {
                Number_of_line = -1;
                break;
            }
            else
            {
                if(j+1<n)
                {
                    if(A[i][j]>A[i][j+1])
                    {
                        Number_of_line = -1;
                        break;
                    }
                    else
                        Number_of_line = i;
                }
            }
        }
        if(Number_of_line>-1)
            break;
    }
    return Number_of_line;
}
 
int main()
{
    unsigned int m,n;
 
 
    printf("%s","Enter number of lines: ");
    scanf("%u",&m);
 
    unsigned int** A = (unsigned int**) malloc(m * sizeof(unsigned int*));
    unsigned int** B = (unsigned int**) malloc((m-1) * sizeof(unsigned int*));
 
    printf("%s","Enter number of columns: ");
    scanf("%u",&n);
 
    printf("%s","Enter matrix elements: \n");
 
    for( i=0; i<m; i++)
    {
        A[i] = (unsigned int*) malloc(n * sizeof(unsigned int));
        if(i!=(m-1))
            B[i] = (unsigned int*) malloc(n * sizeof(unsigned int));
        for(j=0; j<n; j++)
        {
            printf("%s %u %s %u %s","A[",i,"][",j,"] = ");
            scanf("%d",&(A[i][j]));
        }
    }
    printf("%s","\nThe Entered matrix looks like: \n");
    Print_Arr(A, m, n);
    Matrix_Processing(A,B,m,n);
    return 0;
}
0
03.01.2015, 16:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2015, 16:14
Помогаю со студенческими работами здесь

Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить упорядоченность элементов этой
Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить...

Удалить столбец матрицы с минимальным номером, в котором все элементы не делятся на 5 и упорядочены по убыванию
Задана матрица A целых чисел. Преобразовать ее в матрицу B путем удаления столбца этой матрицы с...

Проверить, все ли столбцы матрицы упорядочены по возрастанию. Если да, то увеличить все элементы матрицы вдвое
Если кто сможет напишите пожалуйста код программы Проверить, все ли столбцы матрицы упорядочены...

Найти в матрице первую строку, все элементы которой упорядочены по убыванию
Найти в матрице первую строку, все элементы которой упорядочены по убыванию. Изменить...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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