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

Посмотрите на мой код. Матрицы - C++

Восстановить пароль Регистрация
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
08.11.2010, 23:49     Посмотрите на мой код. Матрицы #1
Накидал вот такой косой код. Программа должна определить мин и макс элемент матрицы и поменять местами строки, содержащие их. программа у меня работала, но с использованием глобальныхпеременных. Переделывая программу дошел до тупика: как-то надо передавать переменные из одной в другую фции, а как? помогите, а? я проблемные места пометил\\\\\\. КАК ОБОЙТИСЬ БЕЗ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ?
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <ctime>
#include <conio.h>
 
using std::cout;
using std::cin;
using std::endl;
int minb[50],maxb[50];
 
int input(int **arr, int m)
 {
         for(int i=0; i<m; i++)
         {
                 arr[i]=new int[m];
                 for(int j=0; j<m; j++)
                 {
                         arr[i][j]=rand()%9;
                 }
         }
   return **arr;
 } 
 
int search (int **arr, int minimum, int maximum, int num_min, int num_max, int m)
{minimum=arr[0][0];
 maximum=arr[0][0];
  for (int i=0; i<m;i++)
  {for (int j=0;j<m;j++)
    {if(arr[i][j]<minimum) {minimum=arr[i][j]; num_min=i;}
    if(arr[i][j]>maximum) {maximum=arr[i][j]; num_max=i;}
  }}return minimum;
}/////////////////////////////////////////////////
               
   
 
int** change (int **arr, int m, int num_min, int num_max)
{
    
                int i=num_min;
                    for(int j=0;j<m;j++)
                    {minb[j]=arr[i][j];
                    }
                i=num_max;
                    for(int j=0;j<m;j++)
                    {maxb[j]=arr[i][j];
                    }
                    for(int j=0;j<m;j++)
                    {arr[i][j]=minb[j];
                    }
                i=num_min;
                    for(int j=0;j<m;j++)
                    {arr[i][j]=maxb[j];
                    }return 0;///////////////////////////////////////////////
}
int main()
{               
        int **arr,m, minimum, maximum, num_min, num_max;
        setlocale(LC_ALL,"Russian");
        cout<<"Введите размерность матрицы: ";
         cin>>m;
    cout<<endl;
        arr = new int*[m];
 
                input (arr, m);
        
                cout<<"Начальная матрица: "<<endl;
       for(int i=0; i<m; i++)
         {
        for(int j=0; j<m; j++)
                     {
                            cout<<arr[i][j]<<"  ";
                         }
                cout<<endl;
         }
 
                search (arr, minimum,maximum,num_min, num_max, m);
                cout<<"Минимальный элемент - "<<minimum<<" в "<<num_min+1<<"строке"<<endl;
        cout<<"Максимальный элемент - "<<maximum<<" в "<<num_max+1<<"строке"<<endl;
                if (num_min==num_max)
                        cout<<"Элементы находятся в одной строке!"<<endl;
                else
                {
 
                 change(arr,m,num_min,num_max);
                        cout<<"Конечная матрица: "<<endl;
        for(int i=0; i<m; i++)
         {
        for(int j=0; j<m; j++)
         {
                            cout<<arr[i][j]<<"  ";
         }
                cout<<endl;
                }
                }
                return 0;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2010, 23:49     Посмотрите на мой код. Матрицы
Посмотрите здесь:

посмотрите код C++
C++ Посмотрите код
C++ Посмотрите код
C++ Посмотрите код пожалуйста...
C++ Программа не работает посмотрите код
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
08.11.2010, 23:57     Посмотрите на мой код. Матрицы #2
Посмотрите на мой код.
Грязно, неотформатированно - плохо читается.
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
09.11.2010, 00:06  [ТС]     Посмотрите на мой код. Матрицы #3
извини, программировать только начал, месяц назад, а до этого даже языка такого не знал
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.11.2010, 00:13     Посмотрите на мой код. Матрицы #4
C++
1
2
3
4
5
6
7
8
9
int search (int **arr, int &minimum, int &maximum, int &num_min, int &num_max, int m)
{minimum=arr[0][0];
 maximum=arr[0][0];
  for (int i=0; i<m;i++)
  {for (int j=0;j<m;j++)
        {if(arr[i][j]<minimum) {minimum=arr[i][j]; num_min=i;}
        if(arr[i][j]>maximum) {maximum=arr[i][j]; num_max=i;}
  }}return minimum;
}/////////////////////////////////////////////////
меняя значения их в функции вы меняете значения как бы "глобально"
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
09.11.2010, 00:21  [ТС]     Посмотрите на мой код. Матрицы #5
а теперь выдает ошибку в чейндж и мейн: недопустимые локальные определения функции. не знаю что и делать(
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
09.11.2010, 00:22     Посмотрите на мой код. Матрицы #6
Crudelis, а Вы слышали про принципы "Бритва Оккама" или KISS? Ваша функция уже выполняет 4 действия и с названием search возвращает минимум. Сделать 4 функции, я думаю, будет куда как нагляднее. Особенно при учете того, что производительность здесь не важна. Уж поверьте, вряд ли бы это оказалось "узким" участком в программе.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.11.2010, 00:40     Посмотрите на мой код. Матрицы #7
fasked, сделать не возвращаемую функцию и чего мучатся, з.ы. у меня программа работает нормально и без ошибок
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2010, 01:22     Посмотрите на мой код. Матрицы
Еще ссылки по теме:

Посмотрите код программы C++
C++ Посмотрите код на наличие ошибки
Посмотрите какой код C++

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

Или воспользуйтесь поиском по форуму:
fasked
09.11.2010, 01:22     Посмотрите на мой код. Матрицы
  #8

Не по теме:

Цитата Сообщение от Crudelis Посмотреть сообщение
fasked, сделать не возвращаемую функцию и чего мучатся, з.ы. у меня программа работает нормально и без ошибок
не уедете вы далеко на таком коде в проектах побольше

Yandex
Объявления
09.11.2010, 01:22     Посмотрите на мой код. Матрицы
Ответ Создать тему
Опции темы

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