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

Внести небольшие коррективы в написанную программу - C++

Восстановить пароль Регистрация
 
theandto
1 / 1 / 0
Регистрация: 24.12.2013
Сообщений: 6
24.12.2013, 01:15     Внести небольшие коррективы в написанную программу #1
Привет читающим тему.
Есть написанная программа и несколько замечаний к ней. Необходимо только отредактировать по найденным ошибкам/недочетам.
Я ничего не смыслю в C++, навряд ли меня можно назвать даже начинающим; написано не мной, а возможности отредактировать до среды нет. А там зачет.
Тех, кто смыслит в C и имеет 5-10 мин. для этого, прошу помочь.

Задание во вложениях.

Замечания под кодом.

Код:
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
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
//подкючаем нужные библиотеки
#include <stdio.h>
#include <alloc.h>
#include <conio.h>
#pragma argsused
int main(int argc, char* argv[])
{
int i,j,n,max,min,maxmin,minmax;   //объявлем переменные целочисленного типа
int **A;                           //объявляем массив указателей на целые числа
                                   //нужно для выделения памяти на двумерный массив
printf("n: ");
scanf("%d",&n);                    //вводим размерность
A=(int **)malloc(sizeof(int *)*n); //выделяем память для массива указателей
for (i=0;i<n;i++){
        A[i]=(int *)malloc(sizeof(int)*n); //выделяем память для каждой строки массива
        for (j=0;j<n;j++){
                printf("A[%d][%d]: ",i+1,j+1);
                scanf("%d",&A[i][j]);      //вводим элементы массива
        }
}
//В цикле ищем в каждой строке максимальный элемент.
//Предварительно перед проверкой каждой строки
//в максимальный элемент запоминаем первый
//элемент строки. После нахождения максимального
//элемента в строке проверяем, является ли он меньше
//предыдущего. Если да, заменяем.
for (i=0;i<n;i++){
        max=A[i][0];
        for (j=0;j<n;j++){//А почему j с 0? 2 одинаковых значения сравниваете.
                if (A[i][j]>max)
                        max=A[i][j];
        }
        if ((i==0)||(max<minmax))
                minmax=max;
}
//В цикле ищем в каждом столбце минимальный элемент.
//Предварительно перед проверкой каждого столбца
//в минимальный элемент запоминаем первый
//элемент столбца. После нахождения минимального
//элемента в столбце проверяем, является ли он больше
//предыдущего. Если да, заменяем.
for (i=0;i<n;i++){
        min=A[0][i];
        for (j=0;j<n;j++){//А почему j с 0? 2 одинаковых значения сравниваете.
                if (A[j][i]<min)
                        min=A[j][i];
        }
        if ((i==0)||(min>maxmin))
                maxmin=min;
}
printf ("S = %d", minmax-maxmin); //Выводим искомую разность
getch();                          //Задержка экрана
//Далее освобождаем память для выделенного массива
for (i=0;i<n;i++){
        free(A[i]);
}
free(A);
 
        return 0;
}
//---------------------------------------------------------------------------
1. main, выделение и освобождение памяти меня не интересует. Решение должно быть оформлено
в виде функции без ввода-вывода и комментариев алгоритма.
2. А зачем 2 переменные minmax и maxmin, достаточно s.
Алгоритм верен, а комментарии такие излишни, я их не читаю.
3. А что для прямоугольной матрицы такую задачу поставить нельзя?
4. А почему А целая? Для данных с плавающей работать не будет. Резко снижает применение.

ps Также имеется замечание в коде: А почему j с 0? 2 одинаковых значения сравниваете.
Миниатюры
Внести небольшие коррективы в написанную программу  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 01:15     Внести небольшие коррективы в написанную программу
Посмотрите здесь:

Небольшие вопросы C++
C++ Как запустить программу на C++ написанную в VS 2008
C++ Нужно перевести небольшую программу, написанную на C++, на С (неповторяющиеся символы в строке)
C++ Как иcследовать DLL написанную на С++ 5.0?
C++ 2 небольшие функции
Перевести программу,написанную на паскале,на язык си++ C++
Переделать программу написанную на Pascal в С++ C++
Откомпилировать и выполнить написанную программу из блокнота в Dev-C++ 4.9.9.2 C++

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

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

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