Суть задания - найти элемент максимального значения в массиве, который удовлетворяет неравенство arr [1] < arr[ i ] < arr [N] Код постоянно выдаёт 0, вне зависимости массив какого размера я создал В функциях не особо силён, но буду благодарен за советы #define CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include<stdio.h> #include <ctime> int temp; int N = 1; int func(int* arr, int temp, int first, int last); int main() { srand(time(NULL)); scanf_s("%d", &N); int* arr = new int[N]; for (int i = 0; i < N; i++) { arr[i] = rand() % 100; printf("%d\t", arr[i]); } int first = arr[1]; int last = arr[N]; func(arr, temp, arr[1], arr[N-1]); printf("\n%d", temp); } int func(int* arr, int temp, int first, int last ) { for (int i = 1; i < N; i++) { if (first < arr[i] < last) temp = arr[i]; else temp = 0; } return temp; } Код #define CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include<stdio.h> #include <ctime> int temp; int N = 1; int func(int* arr, int temp, int first, int last); int main() { srand(time(NULL)); scanf_s("%d", &N); int* arr = new int[N]; for (int i = 0; i < N; i++) { arr[i] = rand() % 100; printf("%d\t", arr[i]); } int first = arr[1]; int last = arr[N]; func(arr, temp, arr[1], arr[N-1]); printf("\n%d", temp); } int func(int* arr, int temp, int first, int last ) { for (int i = 1; i < N; i++) { if (first < arr[i] < last) temp = arr[i]; else temp = 0; } return temp; }
чето N вообще не меняется, мб temp просто инициализируется автоматом нулем и изза N всегда равного 1 он не меняется
1) В функцию надо передавать указатель на переменную, а не просто переменную int func(int* arr, int& temp, int first, int last); 2) Предполагаю, что это плюсы, тогда нахуя ты мешаешь cout и printf? Используй что нибудь одно 3) Это не питон, и тут так нельзя first < arr[i] < last Можно вот так: first < arr[i] && arr[i] < last 4) Тут есть проеб, что у тебя последний элемент может быть меньше первого, и тогда ответа не будет 5) Еще, по условию, arr [1] < arr[ i ] < arr [N] тебе скорее всего нужен первый элемент (arr[0]), а не второй (arr[1]), потому что индексы в плюсах начинаются с нуля 6) Еще надо в функции в иф'е смотреть, что присваваемое значение больше, чем предыдущее 7) Не понял нахуя ты обнуляешь на 29 строчке (в твоем коде) Если надо могу кинуть код, но тип попробуй сам хз