Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
theandto
1 / 1 / 0
Регистрация: 24.12.2013
Сообщений: 6
#1

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

24.12.2013, 01:15. Просмотров 233. Ответов 0
Метки нет (Все метки)

Привет читающим тему.
Есть написанная программа и несколько замечаний к ней. Необходимо только отредактировать по найденным ошибкам/недочетам.
Я ничего не смыслю в 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 одинаковых значения сравниваете.
0
Миниатюры
Внести небольшие коррективы в написанную программу  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 01:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Внести небольшие коррективы в написанную программу (C++):

Переделать программу написанную на Pascal в С++ - C++
Задание Вариант 1 Вычислить определенный интеграл от функции f(x) на промежутке методом прямоугольников. f(x) = 2sin x cos x + sin...

Перевести программу,написанную на паскале,на язык си++ - C++
uses crt; var a:array of integer; m,i,j,s,mx:integer; begin randomize; write('Количество столбцов матрицы m='); read(m); ...

Как запустить программу на C++ написанную в VS 2008 - C++
Собственно такая проблема. Пытаюсь изучать MFC. Создаю в студии новый проект вин32, подключаю библиотеку MFC, код вот такой: файл app.h ...

Откомпилировать и выполнить написанную программу из блокнота в Dev-C++ 4.9.9.2 - C++
Здравствуйте. Только начал обучение языку С++ по книге &quot;С++ Базовый курс автор Герберт Шилдт&quot;. Дошел до момента, где нужно взять образец...

Какой исправить программу, написанную в Visual studio? - C++
Написала программу, скомпилировала, закрыла. Нашла ошибку. Какой файл открывать, чтобы исправить ошибку, в какой файле? Не могу найти. Все...

Нужно перевести небольшую программу, написанную на C++, на С (неповторяющиеся символы в строке) - C++
Текст задачи - &quot;Для заданной строки получить те символы, которые встречаются в ней по одному разу.&quot; Сделана на С++ (код нашел на этом...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2013, 01:15
Привет! Вот еще темы с ответами:

Как открыть программу написанную на c++ через командную строку, если в пути программы есть пробелы - C++
путь программы C:\la la\ve.exe пишу в командной строке: start C:\la la\ve.exe и выдает такое windows не может найти &quot;С:\la&quot;....

Как иcследовать DLL написанную на С++ 5.0? - C++
Необходимо ее использовать в своем проекте на C#, необходимы имена методов и их параметры. Документации нет. *.h файла тоже нет.

2 небольшие функции - C++
Обьясните пожалуйста о чем написанно в этих двух функциях. Спасибо. int power(int a, int b, int n){// a^b mod n int tmp=a; ...

Небольшие вопросы - C++
Одномерный массив 1. Передвинуть элементы равные 0 в конец массива 2. Поменять местами массив, т.е. был 3 5 -9 0 1, стал 1 0 -9 5 3 ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru