Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48

Ввод массива в цикл for с n-м колличеством выполнений

25.10.2014, 21:40. Показов 7862. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Есть одна небольшая проблема, связанная с заданием на c++
Кликните здесь для просмотра всего текста
Задача S-В обратном порядке
Ограничение времени: 1 с
Ограничение памяти: 256 M

Дан массив целых чисел размера N. Вывести его элементы в обратном порядке.
Input

Первая строка стандартного потока ввода содержит количество тестовых случаев Т.

Каждый тестовый случай состоит из двух строк.

Первая строка содержит количество элементов массива N.

Во второй строке заданы сами элементы массива – неотрицательные целые числа, не превышающие 100, разделенные пробелами. Их количество не превышает 1000.
Output

Для каждого тестового случая выведите в отдельную строку элементы массива в обратном порядке через пробел. После последнего выведенного элемента пробела быть не должно.
Примеры
Входные данные

2
5
1 2 3 4 5
10
4 2 3 5 6 4 7 8 9 2

Результат работы
 
5 4 3 2 1
2 9 8 7 4 6 5 3 2 4

Написал код такой программы, однако сам массив работает прекрасно, но когда я его ввожу в цикл, то перестает работать.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
   int f, j, n, a, i, p, mas[a];
    cin >> n;
    for (i=0; i<n; i++)
    {
        cin >> f;
        for (j=0; j<f; ++j)
        {
            cin >> mas[j];
        }
        p=mas[0];
        for (j=(f-j); j>(p-2); j--)
        {
                cout << mas[j] << " ";
        }
    }
    return 0;
}

Работаю в среде NetBeans.
При запуске сборка проходит отлично, но как только запускается сама консоль, то через 2 секунды выводится сообщение ВЫПОЛНЕНИЕ FAILED (значение выхода 1,, общее время: 2s)
Если кто-нибудь сможет помочь, то буду благодарен за ответ!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2014, 21:40
Ответы с готовыми решениями:

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include &quot;stdafx.h&quot; #include &quot;locale.h&quot; #include &quot;stdlib.h&quot; #include &quot;math.h&quot; void main() { setlocale(LC_ALL,&quot;rus&quot;); int...

Выполнений действий в фоне
Всем привет! Есть работающий исходник: public void PrtSc() { if...

Ограничение количества выполнений скрипта
При первом обращении к странице скрипт ставит куку со значением 1. При последующих - это значение увеличивается. Нужно, чтобы скрипт...

15
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2014, 21:48
Цитата Сообщение от Nerewar Посмотреть сообщение
C++
1
mas[a];
a чему равно?
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
25.10.2014, 21:52  [ТС]
Я немного не тот код вставил в данный момент там такая строка
C++
1
int f, j, n, i, p, mas[f];
а уже внутри самого цикла, где работа с массивом я считываю размер массива
C++
1
cin >> f;
а после считываю с клавиатуры сам массив
C++
1
2
3
4
for (j=0; j<f; ++j)
        {
            cin >> mas[j];
        }
потом вывожу в обратном порядке
C++
1
2
3
4
5
p=mas[0];
        for (j=(f-j); j>(p-2); j--)
        {
                cout << mas[j] << " ";
        }
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2014, 21:55
Цитата Сообщение от Nerewar Посмотреть сообщение
Я немного не тот код вставил в данный момент там такая строка
Это ничего не меняет.
Цитата Сообщение от Nerewar Посмотреть сообщение
C++
1
int f, j, n, i, p, mas[f];
f чему равен?
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
25.10.2014, 21:56  [ТС]
f я считываю с клавиатуры, это по условию размер массива
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2014, 21:57
Цитата Сообщение от Nerewar Посмотреть сообщение
а уже внутри самого цикла, где работа с массивом я считываю размер массива
Это не размер массива, массив уже объявлен, с напонятным размером, равным f.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
25.10.2014, 21:58
Ну, во-первых, в языке C++ запрещается объявлять массивы неконстантного размера. Т.е. что ваше 'mas[a]', что ваше 'mas[f]' - это все не С++. Возможность объявлять такие массивы есть только в языке С, начиная с С99.

Во-вторых, если уж вы собираетесь объявлять такой массив, то конкретное значение размера должно быть установлено до объявления массива. Поэтому вот такой код

C
1
int f, j, n, i, p, mas[f];
это всегда полнейшая белиберда, даже в С.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2014, 21:58
Цитата Сообщение от Nerewar Посмотреть сообщение
f я считываю с клавиатуры, это по условию размер массива
Значит сначала считывайте размер, а потом объявляйте массив. Какие-то компиляторы такое пропускают.
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
25.10.2014, 22:06  [ТС]
Пока я не вводил в цикл массив, то код выглядел вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main(){
        int n,a,i,p;
        cin >> n;
        int mas[a];
        for (i=0;i<n;++i)
        {
            cin >> mas[i];
        }
        p=mas[0];
        for(i=n-1; i>p-2; i--){
                cout<<mas[i]<<" ";
        }
}
И он прекрасно работал.
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
25.10.2014, 22:11
C++
1
2
3
4
5
6
7
8
int main()
{
        int n,a,i,p;
        cin >> n;
        int* mas=new int[n];
     ....
        delete[] mas;
}
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2014, 22:18
Цитата Сообщение от Nerewar Посмотреть сообщение
И он прекрасно работал.
И что с того? Переменная a неинициализированна, какое там значение? Мусор? Ноль? Потом объявляете массив неизвестного размера. Хотите так делать? Делайте.
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
25.10.2014, 22:31  [ТС]
Немного пофурычил с кодом... почти всё пошло, только осталось как-то отредактировать код вывода массива в обратном порядке
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
 
int main()
{
   int n, i;
    cin >> n;
    for (i=0; i<n; i++)
    {
        int f,j,p;
        cin >> f;
        int* mas=new int[f];
        for (j=0; j<f; ++j)
        {
            cin >> mas[j];
        }
        p=mas[0];
        for (j=(f-1); j>p-1; j--)
        {
                cout << mas[j] << " ";
        }
        delete[] mas;
        cout << endl;
    }
    return 0;
}
Заранее спасибо!
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
25.10.2014, 22:59
Цитата Сообщение от Nerewar Посмотреть сообщение
Пока я не вводил в цикл массив, то код выглядел вот так:
...
И он прекрасно работал.
Он у вас "прекрасно работал" потому, что вы его компилировали каким-то развеселым компилятором, реализующим некий винегрет из языков С и С++ по мотивам снов какого-нибудь калифорнийского мальчика Бананана. Ваш компилятор фактически не имеет прямого отношения ни к С ни к С++. Тот факт, что какой-то код в нем "прекрасно работает" не говорит абсолютно ничего о корректности вашего кода.

Например, чтобы сделать из компилятора GCC (уж не им ли вы пользовались?) некое подобие С или С++ компилятора надо как минимум указывать ключи компиляции типа '-std=c99' или '-std=c++03' и т.п. Без явного указания таких ключей этот компилятор имеет лишь отдаленное отношение к С или С++ - синтаксис похож.

А дальше уже идет ваш выбор: хотите ли вы использовать в своей практике настоящий С++, или вам просто нужно что-то быстренько накатать на некоем С++-подобном псевдоязыке.
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
25.10.2014, 23:43  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Он у вас "прекрасно работал" потому, что вы его компилировали каким-то развеселым компилятором, реализующим некий винегрет из языков С и С++ по мотивам снов какого-нибудь калифорнийского мальчика Бананана. Ваш компилятор фактически не имеет прямого отношения ни к С ни к С++. Тот факт, что какой-то код в нем "прекрасно работает" не говорит абсолютно ничего о корректности вашего кода.
Например, чтобы сделать из компилятора GCC (уж не им ли вы пользовались?) некое подобие С или С++ компилятора надо как минимум указывать ключи компиляции типа '-std=c99' или '-std=c++03' и т.п. Без явного указания таких ключей этот компилятор имеет лишь отдаленное отношение к С или С++ - синтаксис похож.
А дальше уже идет ваш выбор: хотите ли вы использовать в своей практике настоящий С++, или вам просто нужно что-то быстренько накатать на некоем С++-подобном псевдоязыке.
Последний раз редактировалось TheCalligrapher; Сегодня в 23:00.
Я только полтора месяца назад начал изучать язык c++ и вообще то, что с ним связано, поэтому ещё не очень хорошо знаю, какой компилятор лучший. я в данный момент только студент первого курса, поэтому мне достаточно и таких компиляторов, как NetBeans или Visual Studio 2010 для выполнения этих заданий.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
25.10.2014, 23:59
Цитата Сообщение от Nerewar Посмотреть сообщение
мне достаточно и таких компиляторов, как NetBeans или Visual Studio 2010 для выполнения этих заданий.
И Visual Studio 2010 и NetBeans - это не компиляторы, а оболочки (IDE).

Компилятор С++ в Visual Studio 2010 откажется компилировать ваш код именно по причинам, которые я описывал выше.

В качестве компиляторов С и С++ в NetBeans используется GCC. И раз вы только начинаете изучать эти языки, вам самое время залезть в настройки NetBeans и сконфигурировать GCC-шные компиляторы С и С++ на более строгое соответствие стандартам этих языков программирования.

Но это, конечно, если вас интересуют такие вопросы.
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
26.10.2014, 09:27  [ТС]
Всё, всем спасибо за помощь! Написал уже программу, которую ответ принял
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
using namespace std;
 
int main()
{
   int n, i;
    cin >> n;
    for (i=0; i<n; i++)
    {
        int f,j,p;
        cin >> f;
        int* mas=new int[f];
        for (j=0; j<f; ++j)
        {
            cin >> mas[j];
        }
        for (j=0; j<f/2; j++)
        {
            swap(mas[j], mas[f - j - 1]);
        }
        for (j=0; j<f-1; j++)
        {
            cout << mas[j] << " ";
        }
        cout << mas[j];
        delete[] mas;
        cout << endl;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2014, 09:27
Помогаю со студенческими работами здесь

WebBrowser, отлов кликов или выполнений JS функций
Доброе время суток. Не подскажите, как можно отловить выполнение определенный JS функции в webBrowser? Или же как отловить нажатие ПКМ в...

Выполнений функций в зависимости от того, заполнены ли textbox
Здравствуйте. Дано: 4 тексбокса, на основании заполнения 2-х из них разнообразными функциями будут заполнятся 2 оставшихся. Вопрос...

Соединить точки минимальным колличеством прямых
Бодрого дня. Помогите с задачкой. Есть N точек с координатами Xi, Yi. Есть конечная точка X0,Y0. Нужно соединить эти точки прямыми....

Как задать количество выполнений команды в bat-файле?
Например, как выполнить команду ping, допустим, 3 раза подряд? Но количество выполнений прописать в коде числом, а не использовать вариант...

Формула которая работает со многим колличеством значений.
В общем делаю лабу так сказать универскую, мучает один вопрос! Существует одна формула в которую надо вносить значения из эдитов по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru