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

Программа не работает - C++

Восстановить пароль Регистрация
 
z.a.m
49 / 0 / 1
Регистрация: 17.10.2010
Сообщений: 56
22.11.2010, 15:47     Программа не работает #1
Помогите пожалуйста, лабу не могу защитить, программа компилируется нормально, но при решении самой задачи возникают ошибки, непонятные мне...
Составить программу, которая получает матрицу В размером m *n и два числа i<m и j<m. Если матрица в каждой четной строке имеет положительную сумму элементов, то программа формирует новую матрицу, меняя местами элементы строки с номером i на элементы строки с номером j исходной матрицы В.
В задании также было сказано, что надо создать отдельную функцию для ввода, для вывода, для анализа первого массива и создания другого. У меня получилось так:
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
#include <iostream>
using namespace std;
int const n=5;
int const m=5;
bool function_1 (float B[n][m]);
void function_2 (float B[n][m] , int, int);
void input (float B[n][m] );
void output (float B[n][m], float newB[n][m]);
bool repeat (void);
void main (void)
{
        do
        {
        int i, j;
        cout << "Input i: ";
                cin >> i;
        cout << "Input j: ";
                cin >> j;
float B[n][m];
input(B);
  
        if (function_1(B))
                function_2(B, i, j);
        else 
                cout << "There is no nessesity to create a new file";
        } while (repeat());
}
bool repeat (void)
{
        char symbol;
        cin >> symbol;
        if ((char)tolower(symbol) == 'y')
                return 1;
        else 
                return 0
}
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
#include <iostream>
using namespace std;
int const n=5;
int const m=5;
void input (float B[n][m])
{
        cout <<  "Input elements of file\n";
        for (int str=0; str<n; str++)
        {
 
                for (int stl=0; stl<m; stl++)
                {
                        cin >> B[str][stl];
                }
        }
}
void output (float B[n][m], float newB[n][m])
{
        cout <<  "\nn Old file\n";
        for (int str=0; str<n; str++)
        {
 
                for (int stl=0; stl<m; stl++)
                {
                        cout << B[str][stl] << "\n";
                }
        }
        cout << "\n\nNew file\n";
        for (int str=0; str<n; str++)
        {
 
                for (int stl=0; stl<m; stl++)
                {
                        cout << newB[str][stl] << "\n";
                }
        }
}
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
int const n=5;
int const m=5;
bool function_1 (float B[n][m])
{
        float sum, k;
        int count=0;
        for (int str=0; str<n; str++)
        {
                sum=0;
                if ((str+1)%2==0)
                {
                for (int stl=0; stl<m; stl++)
                {
                        sum+=B[str][stl];
                }
                if (sum>0)
                        count++;
                }
        }
if (n%2==0)
{
        if (count==n/2)
                return 1;
}
 
else 
{
        if(count==(n-1)/2)
                return 1;
        else 
                return 0;
}
 
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int const n=5;
int const m=5;
void output (float B[n][m], float newB[n][m]);
void function_2 (float B[n][m], int i, int j)
{
        float newB[n][m], temp;
        for (int str=0; str<n; str++)
        {
 
                for (int stl=0; stl<m; stl++)
                {
                        newB[str][stl] = B[str][stl];
                }
        }
 
        for (int stl=0; stl<m; stl++)
                {
                        temp = newB[i][stl];
                        newB[i][stl]=newB[j][stl];
                        newB[j][stl]=temp;
                }
        output(B,newB);
}
Добавлено через 1 час 5 минут
Run-Time Check Failure #2 - Stack around the variable 'newB' was corrupted.
Вот такая ошибка вылезает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 15:47     Программа не работает
Посмотрите здесь:

C++ не работает программа
Не работает программа C++
C++ Программа не работает
Программа работает на Windows 7, но не работает на XP C++
C++ Программа при релизе не работает, а при дебаге работает
C++ программа не работает =(
C++ программа не работает
C++ программа не работает

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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