Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти максимальные элементы массива в первой и во второй его половине В массиве Х(N) найти max1– максимальный элемент в первой половине массива и max2– максимальный элемент во второй половине массива. надо набросать код https://www.cyberforum.ru/ cpp-beginners/ thread1412718.html C++ Найти корень уравнения на интервале [a,b] с заданной пользователем точностью
Пропустил несколько занятий по причине болезней, висит курсовая, осталось сделать одно задание. Найти корень уравнения на интервале с заданной пользователем точностью = Само уравнение:ln(x)-(1/x+1)=0
C++ Отсчет временного интервала На прокатном стане объект попадает под первый фотодатчик и начинается отсчет времени, а когда он достигает второго фотодатчика, то прекращается отсчет времени и считается скорость движения проката. Помогите, пожалуйста https://www.cyberforum.ru/ cpp-beginners/ thread1412712.html C++ Непосредственное удаление из std::list https://www.cyberforum.ru/ cpp-beginners/ thread1412703.html
Собственно проблема вот в чем раньше, когда я создавал игру, у меня были самодельные листы типа struct List { T data; List* next; List* prev; void Remove();
C++ Арифметическое выражение считается неправильно
Столкнулся с проблемой, что значение выражения считается не правильно, если кто может, подскажите что не так. Код программы: int main(int argc, char* argv) { double func,x; scanf("%lf", &x); func=1/(x*sqrt(x+0.3)+exp(-x)+1/7) -x; printf("%17.6lf\n",func); getch();
C++ Случайно заполнить массив Есть массив из 10 элементов типа integer. Случайные 3 элемента нужно заполнить 1. Случайные 4 элемента заполнить 2. Остальные элементы 0. Как можно решить эту задачу максимально просто. Без использования новых массивов. https://www.cyberforum.ru/ cpp-beginners/ thread1412684.html
C++ Указатели Здравствуйте. Помогите пожалуйста с программой. Она показывает на экране после массива сумму всех страниц ежедневно в понедельник, вторник, среду... Т.е. она складывает обе половины дня и после массива получается 5 строчек. Мне же нужно, что б она выводила на экран сумму страниц в каждую половину дня: например, в понедельник первая половина дня, понедельник вторая половина дня, вторник первая,... https://www.cyberforum.ru/ cpp-beginners/ thread1412672.html C++ Переписать содержимое очереди в текстовый файл
помогите решить:Используя очередь, переписать содержимое его строк в новый текстовый файл
C++ Не могу подобрать команду в конце кода, чтобы EXE программа не закрывалась #include <iostream> #include <string> using namespace std; int main() { string ima; cout << "Kak Bac 3oByT?" << endl; cin >> ima; cout << " " << endl; cout << " Priyatno poznakomitsya c vami, " << ima << "." << " Menya zovyt Alexandr!!)" << endl; https://www.cyberforum.ru/ cpp-beginners/ thread1412644.html C++ Функция не видит переменных из main Составьте программу, которая будет выводить на экран два разных сообщения (например, “Hello, World !” и “Hello, my darling !”), используя для этого две символьные строки и одну функцию для вывода сообщений на экран. Решите задачу тремя разными способами:  однофайловая программа;  многофайловая программа с использованием локальных переменных;  многофайловая программа... https://www.cyberforum.ru/ cpp-beginners/ thread1412640.html
"Чудеса типа float" или "Куда девалась информация?" C++
кусок кода: int k=100; float sum=0; for (int i=; i<k; i++) for(int j=1; j<i; j++) sum+=1/(2*j+i) cout<<"Summa = "<<sum<<endl;
C++ Использование конструктора класса-шаблона https://www.cyberforum.ru/ cpp-beginners/ thread1412617.html
Есть функция, которая принимает шаблон класса, но при попытке использовать конструктор возникает ошибка, как быть?
-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
05.04.2015, 00:12  [ТС] 0

Передача динамического массива в функцию - C++ - Ответ 7435437

05.04.2015, 00:12. Показов 1741. Ответов 5
Метки (Все метки)

Ответ

Цитата Сообщение от nmcf Посмотреть сообщение
Примерно так:
Всё равно не передаётся.
Вот весь код :
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<locale.h>
#include<Windows.h>
 
int menu();
float create_matrix(float **matr,int n1);
void clean(float **matr,int n1);
void buble(float **matr,int n1);
void choice(float **matr,int n1);
float  ** matr; float * mass,T; 
int n,j,i,k,z,flag=0;
 
void out(float **matr,float * mass,int n1)
 
 
 
int main()
{
setlocale(LC_ALL,"rus");
 while(1)
    {
        switch(menu()) 
        { 
            case 1:
                create_matrix(matr,n);
                break;
            case 2:
                 choice(matr,n);              
                break;
            case 3:
                buble(matr,n);
                break;
            case 4:
                
                break;
            case 5:
                
                break;
            case 6:
                out(matr,n);
                break;
            case 7:
            clean(matr,n);
            break;
            return 0; 
default: printf("Не верный выбор\n");
 
        }
    }
}
 
//Функция создания матрицы для сортировки
float create_matrix(float **matr,int n1)
{
 
printf("Введите размер матрицы\n"); 
scanf("%d",&n);
mass=(float*)malloc(n*sizeof(float)); 
if (mass==NULL)
{  
    printf("Не хватает свободной памяти");
    return;
}
matr=(float**)malloc(sizeof(float *)*n); 
if (matr==NULL)
{  
     printf("Не хватает свободной памяти");
     return;
}
  for (i=0;i<n;i++)
  { 
      matr[i]=(float *)malloc(sizeof(float)*n); 
      if (matr[i]==NULL)
         {
            printf("Не хватает свободной памяти");
            return;
         }
  }
   for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    {
        printf("Введите элемент [%d,%d]\n", i+1, j+1);
        scanf("%f",&matr[i][j]);
    }
    system("cls");
    printf("Введённая вами матрица:\n");
    for(i=0;i<n;i++)
    {
    {
        for (j=0;j<n;j++)
        printf("%.0f",matr[i][j]);
        
    }
    printf("\n");
    }
    float **matr = create_matrix(n);
    return matr;
}
 
//Функция освобождения используемой памяти
void clean(float**matr,int n1)
{
for (i=0;i<n;i++)
free(matr[i]); 
free(matr); 
free(mass);
}
 
//Функция меню
int menu() //определение функции menu
{
    int ch;
    printf("\a\n Меню: \n");
    printf("1. Ввести матрицу \n");
    printf("2. Выполнить сортировку алгоритмом обмена \n");
    printf("3. Выполнить сортировку алгоритмом пузырька \n");
    printf("4. Выполнить сортировку алгоритмом Шелла \n");
    printf("5. Выполнить сортировку алгоритмом вставки \n");
    printf("6. Вывести массив\n");
    printf("7. Выход и высвобождение памяти\n");
    printf("\t Ваш выбор: ");
    scanf("%d",&ch);
    return ch; 
}
 
void choice( float **matr,int n1)
{
 
}
 
void buble(float **matr,int n1)
{
    for( i=0;i<n1;i++)
    {
    printf("Введет элемент равный в строке номер [%d] T\n",i+1);
    scanf("%f\n",&T);
        for(j=0;j<n1;j++)
                {
                    if(*(*(matr+i)+j)==T)
                    {
                        k=j;
                        flag=1;
                    }
        }
                if(flag==0) 
                printf("Элемента равного T в строке нет");
                else{
                    for( int j = k ; j < n1 - 1; j++) { 
       // сравниваем два соседних элемента.
            for(z = k+1 ; z < n1 - j - 1 ; z++) {  
           if(matr[i][z] > matr[i][z+1]) {           
              // если они идут в неправильном порядке, то  
              //  меняем их местами. 
               float tmp = matr[i][z]; 
               matr[i][z] = matr[i][z+1] ;
               matr[i][z+1] = tmp; 
           }
        }      
}
}
T=0;
}
 
 
    printf("\n\a");
    printf("Матрица успешно остортирована");
}
 
void out(float **matr,int n1)
{
    for(i=0;i<n;i++)
    {
    {
        for (j=0;j<n;j++)
        printf("%.0f",matr[i][j]);
        
    }
    printf("\n");
    }
}
При вызове вывода массива ничего не выводится.

Вернуться к обсуждению:
Передача динамического массива в функцию C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2015, 00:12
Готовые ответы и решения:

Передача динамического массива в функцию
У меня задача передать в функцию в качестве параметра динамический 2-хмерный массив и получить...

Передача в функцию динамического массива
Всем привет. Есть, например, функция, работающая с динамическим массивом. Допустим я заполняю этот...

Передача динамического массива в функцию
Нужно передать динамический массив в функцию, описав как ссылку (&amp;p). Но я не понимаю, как к нему...

Передача динамического массива в функцию
Добрый вечер! Пытаюсь передать динамический массив a с размером n в функцию ii, изменить его,...

5
05.04.2015, 00:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2015, 00:12
Помогаю со студенческими работами здесь

Передача динамического массива в функцию
Привет, помогите пожалуйста переделать программку в динамический массив и с помощью передачи...

Передача динамического массива в функцию
извините мб глупый вопрос но не знаю как передать в функцию свой массив в 2 примере( в 1 примере...

Передача динамического массива в функцию
Скажите пожалуйста, почему при передаче динамического массива в функцию, адрес локальной переменной...

Передача динамического массива в функцию
Помогите разобраться, не могу понять где ошибка. Отлаживал, программа &quot;вываливается&quot; при вызове...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru