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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
#1

Функция на показ матрици... - C++

15.02.2011, 21:34. Просмотров 364. Ответов 2
Метки нет (Все метки)

Здравствуйте уважаемые форумчане ...
Подскажите пожалуйста почему функция ShowMatrix первый раз вызывается всё нормально работает а второй раз при вызове пишется Segmentation failure...
Сообственно код...

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
#include <iostream>
#include <iomanip>
#include <stdlib.h>
 
using namespace std;
void other();
void FormMatrix(int *x, int n, int m, int a, int b);
void Poisk_k_ellementa(int *x, int n, int m, int *k_i, int *k_j);
 
void ShowMatrix(int *x, int *k_i, int *k_j, int n, int m, const char s[]);
 
 
int main()
{
    const int M=8, N=8, A=0, B=9;
 
    int a[M][N], k_i[M], k_j[M];
 
    int *pre;
 
    pre=&a[0][0];
 
    other();
 
    FormMatrix(pre,N,M,A,B);
 
    ShowMatrix(pre,k_i,k_j,N,M,"Матрица");
 
    Poisk_k_ellementa(pre,N,M,k_i,k_j);
 
    ShowMatrix(pre,k_i,k_j,N,M,"Матрица");
 
}
 
 
 
void other(){ // Доп. Функции...
 
    srand(time(0));
 
    setlocale(LC_ALL,"rus");
 
}
 
 
void FormMatrix(int *x, int n, int m, int a, int b){ // Формирование матрици...
 
    int falsh_stroka_i_stolbec;
 
    falsh_stroka_i_stolbec=0+rand()%((m-1)-0+1);
 
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
 
            if(i==falsh_stroka_i_stolbec || j==falsh_stroka_i_stolbec){
 
                if(i==falsh_stroka_i_stolbec) // Фальщ строка для условия...
                    *(x+i*n+j)=i;
                if(j==falsh_stroka_i_stolbec)
                    *(x+i*n+j)=j;
 
            } // if
            else
                *(x+i*n+j)=a+rand()%(b-a+1);
 
        }
    }
 
}
 
 
void Poisk_k_ellementa(int *x, int n, int m, int *k_i, int *k_j){ // Поиск к-приложения...
 
    for(int i=0;i<m;i++){
 
        int k=0;
 
        for(int j=0;j<n;j++){
 
            if(*(x+i*n+j)==*(x+j*n+i)){
                k++;
                if(k==7){
                    k_i[m]=i;
                    k_j[m]=i;
                } // if
 
            } // if
 
        } // for
 
    } // for
 
}
 
 
void ShowMatrix(int *x, int *k_i, int *k_j, int n, int m, const char s[]){
 
    cout<<s<<"\n";
 
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
 
            cout<<setw(5)<<*(x+i*n+j);
 
        }
        cout<<"\n";
    }
 
 
}
Программа писалась под Code::Blocks 10..Ubuntu...
Заранее спасибо...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2011, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция на показ матрици... (C++):

Матрици!!! Почему не вводится 5 строка матрици и невыводится сумма? - C++
Задана матрица квадратная А действительных чисел. Найти сумму элементов тех строк матрици, в которых элемент главной диагонали...

Матрици А и B - C++
Задайте матрици А і В размерностью (n x m), де n і m ≥ 6 (nm). Поменяйте местами первій и последний столбец матрици А. Увеличить...

Матрици - C++
помогите пожалуйста написать программу: Дана вещественная матрица nxm. Получите новую матрицу путем деления всех элементов данной матрицы...

Матрици - C++
Записать на место отрицательных элементов матрицы нули, а на место положительных — единицы. Вывести на печать матрицу в общепринятом виде....

Матрици - C++
Кто знает как создать статический массив указателей на одномерные массивы.Или другими словами как создать матрицу но что б массив...

Матрици - C++
1. Дана матрица A. В соответствии с вариантом задания произвести вычисления с элементами данной матрицы. массив D; задание:Найти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
15.02.2011, 21:40 #2
Проверь все переменные в первом и втором случае

void ShowMatrix 2 раза, так точно должно быть?
1
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
15.02.2011, 23:34  [ТС] #3
Цитата Сообщение от Damaks Посмотреть сообщение
Проверь все переменные в первом и втором случае

void ShowMatrix 2 раза, так точно должно быть?
Да 2 раза для отслеживания(визуального) изменения матрици...
переменные вроде на своих местах

Если необходимо могу дать скрин запуска.

Добавлено через 13 минут
http://fotoobmennik.ru/share-FBE4_4D5ACCC9.html

Добавлено через 1 час 33 минуты
разобрался...

C++
1
2
3
4
if(k==7){
    k_i[i]=i;
    k_j[i]=j;
}
пасиб за помощь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2011, 23:34
Привет! Вот еще темы с ответами:

матрици чисел - C++
есть 2 задачи каторые нужно решить Задана матрица чисел: а Вычислить сумму элементов, образующих букву :Z Задана...

строки матрици - C++
Упорядочить строки матрицы размером М*N за увеличением минимального елемента строки.

Характеристика матрици! - C++
Дана прямоугольная матрица, найти количество столбцов которые не содержат ни одного нуля. Характеристика строки матрици является сумма ее...

Заполнение Матрици - C++
задача предстоит в том, чтоб заполнить матрицу таким образом, код надо на Си


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

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

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