Загрузка...

Код постоянно выдаёт 0

Тема в разделе C/C++ создана пользователем LoshK 10 окт 2022. 180 просмотров

  1. LoshK
    LoshK Автор темы 10 окт 2022 Аватарка ароматизирована. Потрись носиком 352 28 фев 2020
    Суть задания - найти элемент максимального значения в массиве, который удовлетворяет неравенство 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;
    }
     
    10 окт 2022 Изменено
  2. fertilizeyss
    чето N вообще не меняется, мб temp просто инициализируется автоматом нулем и изза N всегда равного 1 он не меняется
     
  3. M1h4n1k
    M1h4n1k 10 окт 2022 Ответы skysmart - t.me/SkyAnsBot 272 4 май 2021
    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 строчке (в твоем коде)

    Если надо могу кинуть код, но тип попробуй сам хз
     
    10 окт 2022 Изменено
Top
Загрузка...