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; } } Код 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?
Только возвращать их из функции, попробуй так 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)) } Код 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)) }