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

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

Восстановить пароль Регистрация
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
09.12.2010, 22:51     Ошибка в передаче параметров #1
Доброй ночи. форумчане, помогите в решении такой программы: получает матрицу из файла или клавы или рандомом по выбору пользователя, и выполняет с ней перестановку.... перестановка не важно. дело в том, что исправив прогу под динамическое распределение памяти для матрицы у меня выдало больше 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;}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.12.2010, 22:53     Ошибка в передаче параметров #2
vaselo, НЕ используйте глобальные ПЕРЕМЕННЫЕ
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
10.12.2010, 08:11  [ТС]     Ошибка в передаче параметров #3
Цитата Сообщение от ForEveR Посмотреть сообщение
vaselo, НЕ используйте глобальные ПЕРЕМЕННЫЕ
я их добавил уже от безисходности... не знаю что делать...

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

C++ Ошибка при передаче в функцию
C++ Где ошибка в передаче указателя на массив?
C++ Передаче параметров из класса в main

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

Или воспользуйтесь поиском по форуму:
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
10.12.2010, 13:31  [ТС]     Ошибка в передаче параметров #7
Всем спасибо, я провел пол ночи и довел ее до ума
Yandex
Объявления
10.12.2010, 13:31     Ошибка в передаче параметров
Ответ Создать тему
Опции темы

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