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

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

Войти
Регистрация
Восстановить пароль
 
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
#1

return - C++

18.04.2013, 08:47. Просмотров 393. Ответов 1
Метки нет (Все метки)

Вот такой вопрос, как вернуть значения из функции, и чтоб функция main это узнала?
если на примере, то во так, допучтим есть функция задания промежудка от А до Б
C++
1
2
3
4
5
6
int entry_period(int A, int B)
{
    printf("Введите промежуток од А до B: ");
    scanf("%d %d", &A,&B);
    return A, B;
}
и есть маин функция
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
int main()
{
    setlocale(LC_ALL,"rus");
    int A=0,B=0;
    float sr=0;
    int *C,c;
    int buf;
    int amount=0;
           //проблемав  том, что после выполнения функции, А и В равны нулю, а не тому, что я ввел...
    entry_period(A,B);
    input_C_elements(c,C,A,B);
    if((B-A)<=amount)
    {
        printf("Аварийный выход!");
        getch();
        return 0;
    }
    printf("\nРазмер массива = %d", (B-A-amount));
    int *mas;
    mas=new int[B-A];
    printf("\nВведите элементы массива удовлетворяющие следующим свойствам:");
    printf("\n1. Элементы массива должны находится в промежудке от %d до %d", A,B);
    printf("\n2. Элеменами массива не могут быть следующие числа: ");
    for(int i=0;i<c;i++)
    {
        printf("%d ",C[i]);
    }
    for(int i=0;i<(B-A-amount);i++)
    {
        printf("\nВведите %d элемент массива ",i+1);
        scanf("%d",&buf);
        for(int j=0;j<c;j++)
        {
            if(buf==C[j])
            {
                printf("\nВведенное число равно запрещенному числу! а именно %d", C[j]);
                printf("\n****************Повторите ввод!****************\n");
                if(i==-1)
                {
                    i=-1;
                }
                else
                {
                    i--;
                }
                break;
            }
        }
        if(buf<A || buf>B)
        {
            printf("\nВведенное число не входит в промежуток от %d до %d", A,B);
            printf("\n****************Повторите ввод!****************\n");
            i--;
        }
        else
        {
            mas[i]=buf;
        }
    }
    printf("\n*************Нахождение среднего арифмитического************\n");
    for(int i=0;i<(B-A-amount);i++)
    {
        sr=sr+mas[i];
    }
    sr=sr/(B-A-amount);
    printf("\nСреднее арифмитическое равно: %f", sr);
    getch();
    return 0;
}
после выполнения функции в майне переменные А и Б равны нулю, а не тому что я ввел ;(

Добавлено через 2 минуты
И сразу дополнение... Если я в функции ввожу массив элементов, как мне передать этот массив в main, опять же на примере...
Вот функция ввода массива:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int input_C_elements(int c, int *C, int A, int B)
{
    int amount=0;
    printf("\nВведите колличество С-элементов ");
    scanf("%d",&c);
    C=new int[c];
    printf("\nВведите С-элементы:\n");
    for(int i=0;i<c;i++)
    {
        printf("Введите %d С-элемент ", i+1);
        scanf("%d",&C[i]);
        if(C[i]>=A && C[i]<=B)
        {
            amount++;
        }
    }
    return c, *C, amount;
}
Ну а main есть выше. как сделать так, чтоб маин знал, что хранится в массиве, который я ввел?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 08:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос return (C++):

В чем разница между return и return false/true - C++
Привет всем. Вот подскажите плиз) return; return false; return true; расскажите пожалуйста об етих операторах.. чем они...

Как сделать так, что если файл существует return true, если нет - return false - C++
Здравствуйте, я новичок в программировании. Мой вопрос очень прост: как сделать так, что если файл существует return true если нет return...

return - C++
Здравствуйте, форумчане! На сколько мне известно оператор return передаёт управление операционной системе. А можно ли с его помощью...

Return - C++
Подскажите пожалуйста, каким образом return ом из функции возвращать 2 значения, напрмер 2 корня квардатного уравнения, найденных в одной...

return (n<0) ? -n:n; - C++
Что это означает, return (n&lt;0) ? -n:n; не как не могу понять? Может быть это как if (n&lt;0) return true; else false; ...

return *this; - C++
return *this; Возвращает само себя?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
18.04.2013, 08:57 #2
C++
1
2
3
4
5
void entry_period(int &A, int &B)
{
    printf("Введите промежуток од А до B: ");
    scanf("%d %d", &A,&B);
}
в мейне просто вызвать функцию, и передать туда параметры А и В
с++ функция возвращает одно значение, не путайте с lua и другими подобными языками
если надо вернуть несколько, можно использовать структры или классы, но на самом деле это опять возвращается одно значение.

C++
1
2
3
4
5
6
7
8
int *input_massiv(int size)
{
    int *mas=new int[size];
    for(int i=0; i<size; i++)
         //как-то заполняем массив
         mas[i]=i;
    return mas;
}
в мейне делать так
C++
1
2
3
4
5
int main(void)
{
int *a;
a=input_massiv(5);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2013, 08:57
Привет! Вот еще темы с ответами:

с++ while return - C++
Задание:Вводится точность e. Вычислить сумму ряда 1-1/3+1/5-1/7.... сумма Вычисления продолжать до тех пор, пока очередное слагаемое не...

Return - C++
Всем доброго времени суток! У меня возникла проблема с возвратом значения массива double *c, у меня берётся только одно последнее значение...

Матрицы return - C++
Немного украл кусок кода и появились небольшие проблемы. int&amp; cMatrix::operator(int * index) { int error=-1; if ( *index &lt; 0 ||...

Оператор return - C++
Всем привет, мне необходимо передать полученный массив в другой файл, читала где-то, что это можно сделать при помощи оператора return, но...


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

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

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