Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 32
1

Ошибка при запуске программы

27.05.2012, 17:44. Показов 755. Ответов 12
Метки нет (Все метки)

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

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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include "iostream"
#include "ctime"
#include "stdlib.h"
 
 
 
using namespace std;
 
class Matrix
{
    int m; // количество строк
    int n; // количество столбцов
    double **Matr;
public:
    Matrix(int _n, int _m);
 
    void MatrixInit(int, int);
    void random_put();
 
    Matrix operator+(Matrix );
 
    Matrix operator+(int );
    Matrix operator+(double );
 
    void operator=(int );
    void operator=(double );
 
    double operator()(int, int);
 
    void Print();
 
};
 
Matrix::Matrix(int _n, int _m)
{
    n = _n;
    m = _m;
    Matr = new double*[m];
    for(int i=0; i<m; i++)
        Matr[i]=new double[n];
}
 
void Matrix::random_put()
{
    for(int i=0; i<m; i++)
    {
        for(int j=0; j<n; j++)
        {
            cout<<"Vvedite ["<<i<<"]["<<j<<"] element: ";cin>>Matr[i][j];
        }
    }
}
 
Matrix Matrix::operator+(Matrix A)
{
    Matrix temp(A.n, A.m);
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            temp.Matr[i][j]=Matr[i][j] + A.Matr[i][j];
    return temp;
}
 
Matrix Matrix::operator+(int A)
{
    Matrix temp(n, m);
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            temp.Matr[i][j]=Matr[i][j] + A;
    return temp;
}
 
Matrix Matrix::operator+(double A)
{
    Matrix temp(n, m);
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            temp.Matr[i][j]=Matr[i][j] + A;
    return temp;
}
 
void Matrix::operator=(int A)
{
 
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            Matr[i][j]= A;
 
}
 
void Matrix::operator=(double A)
{
 
    for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
            Matr[i][j]= A;
 
}
 
double Matrix::operator()(int index, int index2)
{
    if(index >= 0 && index2 >= 0)
        if( index <= n && index2 <= m)
            return Matr[index][index2];
        else
            cout << "error index";
    else
        cout << "error index";
}
 
void Matrix::Print()
{
    for(int i=0; i<m; i++)
    {
        cout << endl;
        for(int j=0; j<n; j++)
            cout << Matr[i][j] << " ";
    }
    cout <<endl;
}
 
int main(int i,int j,int t,int index2,int index)
{
 
    cout << "Vvedite razmer matrici, i = ";
    cin >> i;
    cout << "Vvedite razmer matrici, j = ";
    cin >> j;
    Matrix Q(i,j);
    Q.random_put();
    cout << "Pervaya matrica:";
    Q.Print();
 
    Matrix W(i,j);
    W.random_put();
    cout << "Vtoraya matrica:";
    W.Print();
 
    cout << "Rezultat slozhenia matric:";
    W = Q + W;
    W.Print();
    cout << "Vvedite chislo, t = ";
    cin >> t;
    W = Q + t;
    W.Print();
 
    cout << "Vvedite pervii indeks, i = ";
    cin >> index;
    cout << "Vvedite vtoroi indeks, j = ";
    cin >> index2;
{
       if(index >= 0 && index2 >= 0)
        if( index <= i && index2 <= j)
            return Matrix[index][index2];
        else    cout << "error index";
    else    cout << "error index";
}
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2012, 17:44
Ответы с готовыми решениями:

В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы
К тому же выдает warning: deprecated conversion from string constant to 'char*' . #include...

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей...

Ошибка при запуске программы
Сделал алгоритм слияния, нужно проверить время сортировки от 10000 элементов до 100000 (10тыс.,...

Ошибка при запуске программы
Всем привет, компилю программу в Visual 2010, язык C++. Компилирую как в Debug, так и в Release. На...

12
What a waste!
1603 / 1297 / 178
Регистрация: 21.04.2012
Сообщений: 2,720
27.05.2012, 17:51 2
Цитата Сообщение от Lokosios Посмотреть сообщение
C++
1
int main(int i,int j,int t,int index2,int index) {
Так нельзя. Попробуй заменить на
C++
1
2
int main() {
   int i, j, t, index2, index;
0
Java, C# - Expert
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 17:55 3
Наврятли это причина его ошибки. Поскольку тогда-бы просто вылетало что нельзя передать переменные.
0
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
27.05.2012, 18:01 4
Цитата Сообщение от IceSqueez Посмотреть сообщение
ахаха)))))) Ты написал ерунду, поскольку он просто передает параметры в функцию main, а ты говоришь описать ему локальные переменные.
вообще рекурсия main вроде бы запрещена, а если это не рекурсия то зачем так делать
Цитата Сообщение от gray_fox Посмотреть сообщение
int main(int i,int j,int t,int index2,int index)


Lokosios, проверь чтобы все функции были ОПИСАНЫ
0
What a waste!
1603 / 1297 / 178
Регистрация: 21.04.2012
Сообщений: 2,720
27.05.2012, 18:02 5
Цитата Сообщение от IceSqueez Посмотреть сообщение
Наврятли это причина его ошибки.
ну да. Просто первое, что заметил. ТС, ещё инклюды неверные, стандартные подключаются так:
C++
1
2
3
#include <iostream>
#include <cstdlib>
#include <ctime>
Цитата Сообщение от IceSqueez Посмотреть сообщение
ахаха)))))) Ты написал ерунду, поскольку он просто передает параметры в функцию main, а ты говоришь описать ему локальные переменные.
)))
0
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
27.05.2012, 18:04 6
Цитата Сообщение от gray_fox Посмотреть сообщение
Так нельзя. Попробуй заменить на
Откуда вы взяли что в функцию main нельзя передавать параметры?
0
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 32
27.05.2012, 18:05  [ТС] 7
Так-так, стойте) Ошибка не в выше описанном, ругается на строчку
C++
1
 return Matrix[index][index2];
. Пишет: expected primary-expression before '[' token
0
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
27.05.2012, 18:06 8
Цитата Сообщение от IceSqueez Посмотреть сообщение
поскольку он просто передает параметры в функцию main, а ты говоришь описать ему локальные переменные.
он не передаёт параметры в функцию main , разницы между main (int x){...} и main(){int x;} нет ни какой кроме того что когда функции передаётся параметр она записывает его в локальную переменную
0
Java, C# - Expert
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 18:06 9
Цитата Сообщение от Van111 Посмотреть сообщение
вообще рекурсия main вроде бы запрещена, а если это не рекурсия то зачем так делать
Без описаных функций не пустит компилятор, это раз. А во вторых, насчёт рекурсии main()'a то.. по моему смотря какой компилятор, многие пускают... а многие кричат. В принципе пробовать надо все
0
What a waste!
1603 / 1297 / 178
Регистрация: 21.04.2012
Сообщений: 2,720
27.05.2012, 18:08 10
Цитата Сообщение от instagib Посмотреть сообщение
Откуда вы взяли что в функцию main нельзя передавать параметры
Почему, можно, но только так:
C++
1
int main(int argc, char * argv[])
или так:
C++
1
int main(int argc, char * argv[], char * env[])
0
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
27.05.2012, 18:12 11
Цитата Сообщение от Lokosios Посмотреть сообщение
return Matrix[index][index2];
не хватает переопределения оператора []

Добавлено через 2 минуты
автор объявил объект, а вернуть хочет объект двойного массив ,если на то дело пошло то тогда
return Matrix.Matr[index][index2]
0
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 32
27.05.2012, 19:09  [ТС] 12
По прежнему, даже на
C++
1
return Matrix.Matr[index][index2];
говорит expected primary-expression before '.' token
0
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
28.05.2012, 12:19 13
Lokosios, объявите Matr в разделе публик
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2012, 12:19

Ошибка при запуске программы
запускаю программу, выдает ошибку, завтра нести надо, ума не приложу что там не так #include...

Ошибка при запуске программы
Такая ошибка выскакивает при запуске... // n.cpp : main project file. #include &quot;stdafx.h&quot;...

Ошибка при запуске программы
Здравствуйте! Нужно исправить ошибки в программе,почему-то не запускается функция поиска ...

Ошибка при запуске программы
Здравствуйте. Написал следующую программку #include &lt;cstdlib&gt; #include &lt;windows.h&gt; #include...


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

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

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