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

ошибка с передачей через указатели - C++

Восстановить пароль Регистрация
 
un1acker
0 / 0 / 0
Регистрация: 07.03.2012
Сообщений: 22
17.09.2012, 10:37     ошибка с передачей через указатели #1
Подскажите в чем ошибка
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
// dynmas_var15_1semestr.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <clocale>
#include <time.h>
 
using namespace std;
int const M=8;
int const N=6;
 
/*Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные числу, введенному с клавиатуры (Fn1). 
Для созданного массива определить минимальный элемент и его индекс (Fn2)*/
 
int data[M][N];
int z=0;
int index=0;
void zabivka(int mas[8][6]);
void indisplay(int mas[8][6]);
void Fn1(int *mas1,int mas[8][6],int q);
int koli4(int mas[8][6],int q);
void Fn2(int *mas2,int s,int *a,int *b);
int main()
 
{ int k;
 
int index=0;
int min;
  setlocale(LC_CTYPE,"rus");
  srand(unsigned((time(NULL))));
  zabivka(data);
  indisplay(data);
  cout<<endl;
  cout<<"Введите число:";
  cin>>k;
  koli4(data,k);
  int *massiv = new int[ z ];
  Fn1(massiv,data,k);
  
  Fn2(massiv,z,&index,&min);
 
 cout<<endl<<"Минимальный элемент:"<<min<<endl;
 
    cout<<"Индекс минимального элемента:"<<index<<endl;
     delete [] massiv;
  system("pause");
  
    return 0;
 
}
 
void zabivka(int mas[8][6])
{int k=0;
    for(int r=0;r<M;r++)
    {
        for(int b=0;b<N;b++)
        {   k++;
            mas[r][b]=rand()%50+1;
            if(k%2==0)mas[r][b]=rand()%47+1;
        }
    }
 
 
}
void indisplay(int mas[8][6])
{
    for(int r=0;r<M;r++)
    {
        cout<<endl;
        for(int b=0;b<N;b++)
        {
            cout<<setw(5)<<mas[r][b];
        }
    }
 
 
}
 
int koli4(int mas[8][6],int q)
{
    for(int r=0;r<M;r++)
    {
        
        for(int b=0;b<N;b++)
        {
            if(mas[r][b]%q==0)
            {
                    z++ ;
                    
            }
        
        }
        
    
    }
    return z;
}
 
void Fn1(int *mas1,int mas[8][6],int q)
{ 
    int i=0;
    for(int r=0;r<M;r++)
    {
 
        for(int b=0;b<N;b++)
        {
            if(mas[r][b]%q==0)
            {
                    
                    mas1[i]=mas[r][b];
                    cout<< mas1[i]<<" ";
                i++;
                
                
            }
        
        }
        
    
    }
    
    
}
void Fn2(int *mas2,int s,int *a,int *b)
{   
 
    b=&mas2[0];
 
 
    
    for(int i=0;i<s;i++)
        {
            
            if(&mas2[i]<b)
                {
                    b=&mas2[i];
            }
 
    }
    for(int i=0;i<s;i++)
        {
            a++;
            if(b==&mas2[i])break;
 
    }
 
 
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2012, 10:37     ошибка с передачей через указатели
Посмотрите здесь:

C++ массив через указатели
C++ Через указатели на указатели посчитать сумму двух чисел и записать в третье
C++ программа сделана через указатели, переделать через ссылки.
C++ Работа с динамической памятью через указатели. Загадочная ошибка.
Работа с динамической памятью через указатели. Загадочная ошибка. C++
Переписать через указатели C++
C++ Написать программу сортировки через указатели на указатели
Стек через указатели — ошибка доступа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.09.2012, 10:53     ошибка с передачей через указатели #2
Цитата Сообщение от un1acker Посмотреть сообщение
C++
129
b=&mas2[0];
C++
1
*b = mas2[0];
для a то же самое
Yandex
Объявления
17.09.2012, 10:53     ошибка с передачей через указатели
Ответ Создать тему
Опции темы

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