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

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

Войти
Регистрация
Восстановить пароль
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
#1

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

08.11.2010, 23:49. Просмотров 416. Ответов 7
Метки нет (Все метки)

Накидал вот такой косой код. Программа должна определить мин и макс элемент матрицы и поменять местами строки, содержащие их. программа у меня работала, но с использованием глобальныхпеременных. Переделывая программу дошел до тупика: как-то надо передавать переменные из одной в другую фции, а как? помогите, а? я проблемные места пометил\\\\\\. КАК ОБОЙТИСЬ БЕЗ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ?
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;}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2010, 23:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посмотрите на мой код. Матрицы (C++):

Кто сможет, посмотрите на мой код. Ошибки синтаксиса - C++
пожалуйста помогите с ошибками в коде, #include &lt;iostream&gt; //1 #include &lt;cmath&gt; //2 #include &lt;fstream&gt; //3 //4 const long N =...

Посмотрите код - C++
Всем доброго времени суток. Вот написал програмку, которая считает сумму элементов массива. Помогите написать её через svitch.Заранее...

Посмотрите код - C++
Помогите разобраться, пишу программу на С++. Вот код: app.cpp #include &lt;SDL/SDL.h&gt; #include &quot;App.h&quot; #include &quot;Log.h&quot; ...

посмотрите код - C++
Добавлено через 5 минут и еще, не подскажнте, как сделать так, чтоб работал великий и могучий)) русский язык

Посмотрите код пожалуйста... - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { int n,*b,i,k; double x; float **M;// двухмерная...

Посмотрите код программы - C++
Вообщем сабж, код программы рабочий до ушей(по-моему), ругня на #include &lt;iostream.h&gt; на другом компе работает, С++ тот же. Видимо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
08.11.2010, 23:57 #2
Посмотрите на мой код.
Грязно, неотформатированно - плохо читается.
0
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
09.11.2010, 00:06  [ТС] #3
извини, программировать только начал, месяц назад, а до этого даже языка такого не знал
0
Crudelis
Шаровик затейник
674 / 416 / 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;
}/////////////////////////////////////////////////
меняя значения их в функции вы меняете значения как бы "глобально"
1
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
09.11.2010, 00:21  [ТС] #5
а теперь выдает ошибку в чейндж и мейн: недопустимые локальные определения функции. не знаю что и делать(
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
09.11.2010, 00:22 #6
Crudelis, а Вы слышали про принципы "Бритва Оккама" или KISS? Ваша функция уже выполняет 4 действия и с названием search возвращает минимум. Сделать 4 функции, я думаю, будет куда как нагляднее. Особенно при учете того, что производительность здесь не важна. Уж поверьте, вряд ли бы это оказалось "узким" участком в программе.
0
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.11.2010, 00:40 #7
fasked, сделать не возвращаемую функцию и чего мучатся, з.ы. у меня программа работает нормально и без ошибок
0
fasked
09.11.2010, 01:22     Посмотрите на мой код. Матрицы
  #8

Не по теме:

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

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

Посмотрите какой код - C++
необходимо написать альтернативу этому коду #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;time.h&gt; #include &lt;vector&gt; ...

Посмотрите код на наличие ошибки - C++
#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; typedef vector&lt;int&gt; row; typedef vector&lt;row&gt; matrix; matrix Read() ...

Программа не работает посмотрите код - C++
Помогите пожалуйста с кодом программы Вычислить сумму 1-1\2+1\3-…+(-1)sqr(n+1)*(1\n) //#include &lt;stdafx.h&gt; #include...

Посмотрите код, подскажите что исправить - C++
Вот 4 дня назад начал изучать C++ Учительница по информатике дала задачу: Вводятся 3 числа. Если положительное - возвести во 2...


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

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

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