Загрузка...

Как обратиться к другой функции??

Тема в разделе C/C++ создана пользователем EV1 3 мар 2020. 153 просмотра

Загрузка...
  1. EV1
    EV1 Автор темы 3 мар 2020 Дизайн - zelenka.guru/threads/227119/ 796 5 июл 2017
    Код
    void sum2(int* x, int n, int sm, int aref, int sumnot)
    {
    int i;
    for (i = 0; i < n; i++)
    {
    sm = sm + *(x + i);
    }
    aref = sm / n;
    for (i = 0; i < n; i++)
    {
    if (*(x + i) < aref)
    {
    sumnot = sumnot + *(x + i);
    }
    }

    printf("-----------------------------------\n");
    printf("Арефметическое = %d\n", aref);
    printf("Сумма = %d\n", sm);
    printf("Сумма ниже арефметического = %d\n", sumnot);
    printf("-----------------------------------");
    }

    // функция нахождения максимального значения и его номера
    void printsave(int* x, int n)
    {
    int z;
    printf("1 - Вывести на экран. 2 - Сохранить в файл\n");
    back: scanf_s("%d", &z);
    if (z == 1)
    {
    printf("\n");
    int i;
    for (i = 0; i < n; i++)
    {
    printf("%d; ", *(x + i));
    }
    printf("\n");
    }
    if (z == 2)
    {
    string path = "saveall.txt";
    ofstream you(path);
    printf("\n \n");
    int i;
    for (i = 0; i < n; i++)
    {
    you << *(x + i) << ";"; // сумма всех элементов массива
    }
    you.close();
    printf("Файл сохранен\n");
    }
    else {
    printf("Ошибка ввода повторите!\n");
    goto back;
    }
    }
    Как обратиться printsave к sum2 и запросить переменные например: sumnot, aref?
     
  2. esretard
    esretard 3 мар 2020 18 23 дек 2019
    Только возвращать их из функции, попробуй так
    Код

    int* sum2(int* x, int n, int sm, int aref, int sumnot)
    {
    int* res = (int*)malloc(sizeof(int) * 2);
    int i;
    for (i = 0; i < n; i++)
    {
    sm = sm + *(x + i);
    }
    aref = sm / n;
    for (i = 0; i < n; i++)
    {
    if (*(x + i) < aref)
    {
    sumnot = sumnot + *(x + i);
    }
    }

    printf("-----------------------------------\n");
    printf("Арефметическое = %d\n", aref);
    printf("Сумма = %d\n", sm);
    printf("Сумма ниже арефметического = %d\n", sumnot);
    printf("-----------------------------------");
    *res = aref;
    *(res + sizeof(int)) = sumnot;
    return res;
    }
    void printsave(...)
    {
    int* res = sum2(...)
    int aref = *res;
    int sumnot = *(res + sizeof(int))
    }
     
Top