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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При вводе букв (переменных)глючит программа,а должно выбивать ошибку http://www.cyberforum.ru/cpp-beginners/thread195406.html
Программа высчитывает определённую функцию (при вводе переменных стоят ограничения). Извините, в программировании не сильна. Это скорее не ошибка, а недоработка программы. Мне нужно, что бы при...
C++ вывести первые n слов на экран Всем привет ;) Мне нужно вывести на экран первые n слов из рядка. Пользователь задает количество слов n. не пойму как организовать цикл. ввести и вывести нужно с помощью printf() и scanf() на... http://www.cyberforum.ru/cpp-beginners/thread195397.html
РАБОТА С ДВУМЕРНЫМИ МАССИВАМИ C++
Вводятся начальные и конечные координаты положения шахматного коня (x1, y1, x2, y2), написать программу, определяющую за сколько ходов конь пе-реместиться в указанные координаты. Распечатать эти...
одномерный массив C++
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми...
C++ Класс для работы со временем http://www.cyberforum.ru/cpp-beginners/thread195364.html
Здраствуйте=) не поможите ли вы написать класс на время. class Time{ private: int hours; int minutes; int seconds; bool isValid;
C++ try Здравствуйте. Подскажите плиз, как правильно обрабатывать исключения? Visual C++ 6 Допустим: try { int i="vsyakaya erunda"; } catch(...) { cout << "perehvat" << endl; } Как я понял в... подробнее

Показать сообщение отдельно
z.a.m
49 / 0 / 1
Регистрация: 17.10.2010
Сообщений: 57

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

22.11.2010, 15:47. Просмотров 255. Ответов 0
Метки (Все метки)

Помогите пожалуйста, лабу не могу защитить, программа компилируется нормально, но при решении самой задачи возникают ошибки, непонятные мне...
Составить программу, которая получает матрицу В размером 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.
Вот такая ошибка вылезает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru