Загрузка...

The code keeps saying 0

Thread in C/C++ created by LoshK Oct 10, 2022. 181 view

  1. LoshK
    LoshK Topic starter Oct 10, 2022 Аватарка ароматизирована. Потрись носиком 352 Feb 28, 2020
    Суть задания - найти элемент максимального значения в массиве, который удовлетворяет неравенство arr [1] < arr[ i ] < arr [N]
    Код постоянно выдаёт 0, вне зависимости массив какого размера я создал
    В функциях не особо силён, но буду благодарен за советы

    Code
    #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;
    }
     
  2. fertilizeyss
    чето N вообще не меняется, мб temp просто инициализируется автоматом нулем и изза N всегда равного 1 он не меняется
     
  3. M1h4n1k
    M1h4n1k Oct 10, 2022 Ответы skysmart - t.me/SkyAnsBot 272 May 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 строчке (в твоем коде)

    Если надо могу кинуть код, но тип попробуй сам хз
     
Top
Loading...