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

Проклятые функции - C++

Восстановить пароль Регистрация
 
razdva
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 19
29.10.2013, 21:05     Проклятые функции #1
Доброго врмени суток, помогите найти ошибку!!!
/после выхода из этой функции func2 нужные мне значения counter, index обнуляються , в чем проблема?
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
#pragma hdrstop
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#include <tchar.h>
#include <windows.h>
//---------------------------------------------------------------------------
int c =0,counter=0,b =0, index=0, sum=0, buf=0, *max1;
void func1(int a[],int c)
{
srand(time(0));
printf("Значение элементов массива\n");
for (int i =0; i < c; i++) {
a[i] = (rand()%50) - 30;
printf("%i ",a[i]);
}
printf("\n");
};
int func2(int a[], int c,int counter, int index )
{
printf("Введите значение для сравнения\n");
int max=0;
scanf("%i", &b);
max = abs(a[0]);
for (int i=0 ; i < c; i++) {
if (b>=a[i]) {
counter++;
}
if (abs(a[i])>max){
max=abs(a[i]);
index = i;
}
}
for (int i = 10; i < c; i++) {
sum +=a[i];
}
for (int j = 0; j < c; j++) {
    for (int i =0; i < c-1; i++) {
        if (a[i]>a[i+1]) {
            buf =a[i];
            a[i] = a[i+1];
            a[i+1]= buf;
                        }
                                }
                            }
return a, max, sum, counter;
}
void main()
{
system("chcp 1251");
printf("Введите размер массива\n");
scanf("%i", &c);
int* a = new int[c];
func1(a,c);
func2(a,c, counter, index ); //после выхода из этой функции нужные мне значения  counter, index обнуляються
printf("Максимальное значение по модулю: %i \n", max1);
printf("Количество элементов больше сравнимого: %i \n", counter);
printf("Сумма элементов: %i \n", sum);
printf("Значение элементов массива после сортировки \n");
for (int i =0; i < c; i++) {
printf("%i ",a[i]);
}
printf("\n");
system("pause");
}
//-----------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2013, 21:05     Проклятые функции
Посмотрите здесь:

C++ Как из обыной функции вызвать функции член класса?
Dызовом родовой функции! Нужно передать массив в качестве аргумента функции через указатель." C++
ввод данных в функции конструктора и использование их в перегруженой функции C++
Проклятые потоки. C++
C++ Заданы три функции. Определить, являются ли эти функции четными или нечетными
C++ Получить указатель из функции и использовать его в другой функции
C++ Определить конструкторы, функции-члены установки времени, функции получения часа, минуты и секунд
Возврат 2 значений из функции с одним вызовом этой же функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
29.10.2013, 21:07     Проклятые функции #2
Цитата Сообщение от razdva Посмотреть сообщение
нужные мне значения counter, index обнуляються , в чем проблема?
в том что в функцию передаются копии переменных и в функции Вы работаете с копиями. Можете передать указатель на нужную память или же ссылку на нужную переменную.
C++
1
2
3
int func2(int a[], int c,int & counter, int & index ){
//...
}
Yandex
Объявления
29.10.2013, 21:07     Проклятые функции
Ответ Создать тему
Опции темы

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