Форум программистов, компьютерный форум CyberForum.ru

Адаптация решения - C++

Восстановить пароль Регистрация
 
Sharkyy
0 / 0 / 0
Регистрация: 26.12.2015
Сообщений: 9
23.06.2016, 21:17     Адаптация решения #1
Есть часть решения задачи про матрицу: Задан целочисленный двухмерный массив A из n строк и m столбцов. Найти значение максимального элемента среди элементов, кратных k1, и расположенных до первого отрицательного элемента. Матрицу рассматривать по столбцам. В случае отсутствия кратных k1 или отрицательных элементов или невозможности поиска вывести соответствующие поясняющие сообщения.
Нужно переделать это решение так, чтобы оно решало похожую задачу: Задан целочисленный двухмерный массив A из n строк и m столбцов. Найти номер последнего минимального элемента среди элементов, меньших Т1 и расположенных до первого элемента, большего Т2. Матрицу рассматривать по столбцам. В случае отсутствия меньших Т1 или больших Т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
void rewenie(Matrix * A)
{
    FILE *end = fopen("end.txt", "a+");
 
    if (end == NULL)
    {
        fprintf(end, "****************************************************\n");
        fprintf(end, "Ошибка файла\nPress any key\n");
        fprintf(end, "****************************************************\n");
        //----------------------------------------------------------------------//
        printf("Ошибка файла\n");
        printf("Press any key\n");
        _getch();
        return;
    }
 
    int u;
    printf ("Введите число t1 -> ");
    scanf("%d", &u);
    if (u == 0) {
        fprintf(end, "****************************************************\n");
        fprintf(end, "Некорректное число %d\n", u);
        fprintf(end, "Press any key\n");
        fprintf(end, "****************************************************\n");
        //----------------------------------------------------------------------//
        printf("Некорректное число %d\n", u);
        printf("Press any key\n");
        _getch();
        return;
    }
 
    int otr = 0, krat = 0;
 
    for (int j(0); j < A->line; j++)
    {
        line(A, j);
        for (int i(0); i < A->column; i++)
        {
            if (read(A) < 0) otr++;
            if (read(A) % u == 0) krat++;
            next(A);
        }
    }
 
    if (otr == 0) {
        fprintf(end, "****************************************************\n");
        fprintf(end, "Нет отрицательных элементов\n");
        fprintf(end, "Press any key\n");
        fprintf(end, "****************************************************\n");
        //----------------------------------------------------------------------//
        printf("Нет отрицательных элементов\n");
        printf("Press any key\n");
        _getch();
        return;
    }
    if (krat == 0) {
        fprintf(end, "****************************************************\n");
        fprintf(end, "Нет элементов кратных %d\n", u);
        fprintf(end, "Press any key\n");
        fprintf(end, "****************************************************\n");
        //----------------------------------------------------------------------//
        printf("Нет элементов кратных %d\n", u);
        printf("Press any key\n");
        _getch();
        return;
    }
 
    int max = -1;
    for (int i(0); i < A->line; i++)
    {
        line(A, i);
        
        for (int j(0); j < A->column; j++)
        {
            if (read(A) < 0) break;
            else
                if ((read(A) % u == 0) && (read(A) > max)) max = read(A);
        
        }
        if (read(A) < 0) break;
    }
    if (max != -1) {
        fprintf(end, "****************************************************\n");
        fprintf(end, "Максимальный элемент: %d\n", max);
        fprintf(end, "****************************************************\n");
        //----------------------------------------------------------------------//
        printf("Максимальный элемент: %d\n", max);
    }
 
    if (max == -1) {
        fprintf(end, "****************************************************\n");
        fprintf(end, "Первый элемент в матрице отрицательный\n");
        fprintf(end, "****************************************************\n");
        //----------------------------------------------------------------------//
        printf("Первый элемент в матрице отрицательный\n");
    }
 
    fclose(end);
    return;
}
void print(Matrix * A)
{
    for (int i(0); i < A->line; i++)
    {
        line(A, i);
        for (int j(0); j < A->column; j++)
        {
            printf("%4d", A->cur->value);
            next(A);
        }
        printf("\n");
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 21:17     Адаптация решения
Посмотрите здесь:

Оптимизация решения. C++
C++ есть решения???
Решения по Дейтелам C++
C++ Адаптация ПО под 64-битную систему
C++ Решения уравнения
Адаптация примера из книги под Visual Studio C++
Адаптация кода C++
C++ Адаптация куска кода, написанного по стандарту C++11, под стандарт C++03

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru