Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
1

Ошибка в передаче параметров

09.12.2010, 22:51. Просмотров 433. Ответов 6
Метки нет (Все метки)

Доброй ночи. форумчане, помогите в решении такой программы: получает матрицу из файла или клавы или рандомом по выбору пользователя, и выполняет с ней перестановку.... перестановка не важно. дело в том, что исправив прогу под динамическое распределение памяти для матрицы у меня выдало больше 30 ошибок, поудалял параметры в скобках функций при вызове, ошибок стало меньше... испоганил ее вообще....
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
using std::cout;
using std::cin;
using std::endl;
using std::gets;
int **arr,m=0,num_min=0,num_max=0,minimum=0,maximum=0;
int inp_file()
{
    FILE *f;
    char fname [80];
    cout<<"Vvedite polnoe nazvanie fayla: \n";
    gets(fname);
    f=fopen(fname,"rt");
    if(f)
    {
        while(!feof(f))
        {
            if(fgetc(f)=='\n')
                m++;
        }
        fseek(f,0,SEEK_SET);
        arr = new int * [m];
        for (int i=0;i<m;i++)
        {
            arr[i]=new int [m];
        }
        for (int i=0;i<m;i++)
        {
            for (int j=0;j<m;j++)
                fscanf(f,"%d",&arr[i][j]);
        }
        fclose(f);
        return **arr;
    }
    else 
    {
        cout<<"Oshibka otkritiya!\n";
        return 0;
    }
}
int keyb(int m)
{for(int i=0; i<m; i++)
    {arr[i]=new int[m];
        for(int j=0; j<m; j++)
            {cout<<"arr["<<i<<"]["<<j<<"]"<<"=";
            cout<<endl;
            cin>>arr[i][j];
        }}
            return **arr;
}
 
int rand(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()%89+10;
    }
 return **arr;
 } 
 
void search (int **arr,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;}
  }}
               
}
 
int** change (int **arr, int m, int num_min, int num_max)
{ int v;
    for(int j=0;j<m;j++)
{v=arr[num_min][j];
arr[num_min][j]=arr[num_max][j];
arr[num_max][j]=v;}
return arr;
}
void outn(int **arr, int m)
    {cout<<"Начальная матрица: "<<endl;
    for(int i=0; i<m; i++)
     {for(int j=0; j<m; j++)
       {
         cout<<arr[i][j]<<"  ";}
         cout<<endl;
    }}
void outs(int **arr, int m)
    {cout<<"Полученая матрица:  "<<endl;
    for(int i=0; i<m; i++)
     {for(int j=0; j<m; j++)
       {
         cout<<arr[i][j]<<"  ";}
         cout<<endl;
         }
    }
int main()
{int sw;
do{cout<<"1. Перестановка в матрице, введенной с клавиатуры"<<endl<<"2. Перестановка в матрице, заполненой случайными числами"<<endl;
    cout<<"3. Перестановка в матрице, считаной из файла"<<endl<<"0. Для выхода"<<endl<<"Сделайте свой выбор: ";
    cin>>sw;
    switch(sw)
        case 1:{cout<<"Введите размерность матрицы: "<<endl;
                cin>>m;
                keyb(m);
                outn(m);
                search(m);
                change();
                outs();}break;
        case 2:{cout<<"Введите размерность матрицы: "<<endl;
                cin>>m;
                rand(m);
                outn(m);
                search(m,num_min,num_max);
                change();
                outs(m);
                }break;
        case 3:{inp_file();
                outn();
                search(m);
                change();
                outs(m);
               }break;
}while (sw!=0);
getch();
return 0;}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2010, 22:51
Ответы с готовыми решениями:

Передаче параметров из класса в main
В header файле в метод menu класса Menu, передаю класс ResuryHealth. int...

Почему выдает ошибку при передаче по ссылке параметров?
#include &lt;iostream&gt; /* run this program using the console pauser or add your...

Шаблонная функция не компилируется при передаче двух параметров
При передаче двух параметров в шаблонную функцию программа не компилируется....

Ошибка при передаче в функцию
Хочу передать в функцию строку и там ее заполнить, подчеркивает void...

Ошибка при передаче структуры
Пишу в тему для начинающих, ибо жестко туплю с данным вопросом. Есть метод: ...

6
ForEveR
В астрале
Эксперт С++
7996 / 4755 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
09.12.2010, 22:53 2
vaselo, НЕ используйте глобальные ПЕРЕМЕННЫЕ
1
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
10.12.2010, 08:11  [ТС] 3
Цитата Сообщение от ForEveR Посмотреть сообщение
vaselo, НЕ используйте глобальные ПЕРЕМЕННЫЕ
я их добавил уже от безисходности... не знаю что делать...

Добавлено через 9 часов 6 минут
Ну помогите!!1
0
time2die
51 / 51 / 10
Регистрация: 25.05.2010
Сообщений: 182
10.12.2010, 08:21 4
Цитата Сообщение от ForEveR Посмотреть сообщение
vaselo, НЕ используйте глобальные ПЕРЕМЕННЫЕ
потому что..... ????в детстве слышал, что за каждую глобальную переменную бог на небе убивает котенка, но с возрастом перестал в это верить
0
lom80
4 / 4 / 1
Регистрация: 03.06.2010
Сообщений: 55
10.12.2010, 08:35 5
Совсем не понятно. У тебя функция outn принимает 2 параметра, а передаешь только один. Понятно, что компилятор будет материться. Переменную i определена несколько раз. Определи ее в начале функции, и не мучайся. Дальнейшие ошибки не посмотрел, по-моему они такого же типа.
0
ForEveR
В астрале
Эксперт С++
7996 / 4755 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
10.12.2010, 13:00 6
time2die, Потому что здесь это абсолютно бессмысленно.
0
vaselo
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
10.12.2010, 13:31  [ТС] 7
Всем спасибо, я провел пол ночи и довел ее до ума
0
10.12.2010, 13:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 13:31

Ошибка в передаче знач-й функции
#include &lt;stdio.h&gt; void dfs(int n, int **g, int v, int *used) { ...

Ошибка при передаче результата функции
Оператор + возвращает правильное значение (по крайней мере в конце его тела я...

ошибка в коде при идеальной передаче
Здравствуйте, есть код и ошибка в нем: template&lt;typename T&gt; struct extension...


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

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

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