Массив — DS HackerRank в C

Код работает нормально в моей IDE Dev C++, но продолжает давать сбои в IDE HackerRank.

Я делаю какую-то ошибку?

Вот ссылка на проблему:
https://www.hackerrank.com/challenges/arrays-ds/problem?isFullScreen=true

Функция, которую я написал, выглядит следующим образом, пожалуйста, объясните мне, где я ошибаюсь?

int* reverseArray(int a_count, int* a, int* result_count) {
    int i, j;
    for(i=0; i<a_count; i++) {
        result_count[i] = a[i];
    }
    for(j=a_count-1; j>=0; j--) {
        printf("%d ",result_count[j]);
    }
    return result_count;
}

Вы должны перевернуть массив, а не печатать его в обратном порядке.

Aplet123 13.12.2020 17:23

вы не упомянули, что работает в вашей IDE и что не работает в HR, но код не переворачивает массив, он просто печатает

IrAM 13.12.2020 17:26
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
3
2
2 137
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш ответ правильный, вы копируете элементы массива 1 с конца в начало в массиве 2

если вы хотите изменить свой массив в том же массиве, вы просто используете временную переменную для замены элементов следующим образом:

#include<stdio.h>

void* reverseArray(int a_count, int* a) //you return an array (type complexe) so ,you should use void    
{
    int temp=0;
    for(int i=0; i<a_count/2; i++)
    {
        temp= a[a_count-i-1];
        a[a_count-i-1]=a[i];
        a[i]=temp;
    }
    for(int i=0; i<a_count; i++)
    {
        printf("%d ",a[i]);
    }
}

int main()
{
     int t[5] = {1,2,3,4,5};
     reverseArray(5,t);
}

Я понимаю ваше решение. И я его тоже реализовал. Я передал все элементы перевернутого массива a в массив result_count. Он показывает вывод на моем ide, но не проходит тест на hackerrank. Печатаются только первые два элемента после реверсирования.

user13942095 13.12.2020 18:54

спасибо за помощь, @MED LDN. Я думаю, что IDE hackerrank не работает для C.

user13942095 13.12.2020 18:57

вы должны инициализировать свое первое значение в цикле отображения for на 0, и он остановился на длине массива -1, например, 'for(int i=0;i<N;i++'

MED LDN 13.12.2020 18:58

Другие вопросы по теме