Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 5
1

Runtime Error

02.04.2022, 11:52. Показов 559. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Решал на первый взгляд простую задачу по перестановке чисел
Необходимо переставить 2 числа так, чтобы все чётные числа были на чётных местах, нечётные числа - на нечётных
Если с помощью одного хода так нельзя сделать, то вывести -1 -1

Моя программа не проходит 11-й тест, выдавая "Runtime Error"
Прошу взглянуть опытным взглядом, где могут быть небезопасные места.


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
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
int main()
{
    int n,a[10000],i,t,j=1000000000,x;
    cin>>n;
    for (i=0;i<n;i++){
        cin>> a[i];
    }
    for (i=0;i<n;i++){
        if (j!=1000000000 && (a[i]%2==0 && (i+1)%2!=0) || (a[i]%2!=0 && (i+1)%2==0)){
            t=a[i];
            a[i]=a[j];
            a[j]=t;
            j++;
            x=i+1;
            break;
        }
        if ((a[i]%2==0 && (i+1)%2!=0) || (a[i]%2!=0 && (i+1)%2==0)){
            j=i;
            
        }
    }
    if (j==1000000000){
        t=a[0];
        a[0]=a[2];
        a[2]=t;
        j=1;
        x=3;
    }
    for (i=0;i<n;i++){
        if ((a[i]%2==0 && (i+1)%2!=0) || (a[i]%2!=0 && (i+1)%2==0)){
            j=-1;
            x=-1;
        }
    }
    cout<<j<<" "<<x;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2022, 11:52
Ответы с готовыми решениями:

Runtime error #3
#include &lt;iostream&gt; int main() { int a, b, c, page1, page2, hypot; std::cin &gt;&gt; a &gt;&gt; b &gt;&gt;...

Runtime Error
выдает runtime error на 18 тесте. код работал вполне себе нормально, но отправив на проверку я...

Runtime Error
Пытаюсь создать игру 2048, но при выполнении движений вылетает Runtime Error void Game::doUp()...

runtime error
Входные данные двумерный массив 10х10, заполненный нолями и единицами, где 0-пустая клетка, а...

Runtime Error
Доброго времени суток. Решал на первый взгляд простую задачу по распаковке строки. Если вкратце,...

11
Заблокирован
02.04.2022, 12:45 2
Цитата Сообщение от MrPlatynum Посмотреть сообщение
Необходимо переставить 2 числа так, чтобы все чётные числа были на чётных местах, нечётные числа - на нечётных
Мож цифры? Или числа в массиве?
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 5
02.04.2022, 12:52  [ТС] 3
Пример 1
Ввод
2
2 1

Вывод
1 2

Пример 2
Ввод
3
1 2 3

Вывод
1 3

Пример 3
Ввод
4
2 1 4 6

Вывод
-1 -1
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
02.04.2022, 12:52 4
Цитата Сообщение от MrPlatynum Посмотреть сообщение
a[10000]
Цитата Сообщение от MrPlatynum Посмотреть сообщение
a[j]=t;
j++;
Где контроль того, что j не превысит 10000?
0
Заблокирован
02.04.2022, 12:55 5
Цитата Сообщение от MrPlatynum Посмотреть сообщение
Пример 2
Ввод
3
1 2 3
Вывод
1 3
Не понимаю, как это работает.
Покаж оригинал задания.
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 5
02.04.2022, 12:59  [ТС] 6
Добавлено через 49 секунд
Цитата Сообщение от Verevkin Посмотреть сообщение
Не понимаю, как это работает.
Покаж оригинал задания.
Васина бабушка очень любит фигурки слоников. В ее шкафу в ряд выставлены n фигурок. На каждой фигурке написано некоторое число. На позиции номер i стоит слоник с числом ai.

В выходные бабушка сделает небольшую перестановку: некоторые две фигурки, находящиеся на позициях i и j () она поменяет местами. Еще бабушка любит закономерности, поэтому она хочет, чтобы после перестановки на четных позициях стояли четные числа, а на нечетных — нечетные.

Помогите бабушке выяснить, можно ли из последовательности слоников a получить последовательность, которая удовлетворяет заданному условию, сделав ровно один обмен двух слоников, стоящих на различных позициях.

Индексанция последовательности чисел a начинается с единицы.

Формат ввода
В первой строке находится одно натуральное число n (2 ≤ n ≤ 1000).

В следующей строке находятся n натуральных чисел ai — числа, записанные на фигурках слоников (1 ≤ ai ≤ 109).

Формат вывода
В единственной строке выведите i и j — номера фигурок, которые нужно поменять местами, чтобы добиться заданного условия (). Если ответов несколько — разрешается вывести любой.

Если не существует способа поменять две фигурки местами — выведите .
0
Заблокирован
02.04.2022, 13:06 7
Цитата Сообщение от MrPlatynum Посмотреть сообщение
Пример 2
Ввод
3
1 2 3
Вывод
1 3
Где делось число 2?
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 5
02.04.2022, 13:08  [ТС] 8
Цитата Сообщение от Verevkin Посмотреть сообщение
Где делось число 2?
Необходимо вывести только 2 числа - индексы чисел, которые мы поменяли местами (при этом индексы нумеруются от 1)
0
Заблокирован
02.04.2022, 13:15 9
Цитата Сообщение от MrPlatynum Посмотреть сообщение
Необходимо вывести только 2 числа - индексы чисел, которые мы поменяли местами (при этом индексы нумеруются от 1)
Короче, надо в массиве найти такие 2 элемента, что если поменять их местами, массив станет состоять из чередующихся нечётных и чётных элементов?
0
0 / 0 / 0
Регистрация: 02.04.2022
Сообщений: 5
02.04.2022, 13:16  [ТС] 10
Цитата Сообщение от Verevkin Посмотреть сообщение
Короче, надо в массиве найти такие 2 элемента, что если поменять местами, массив станет состоять из чередующихся нечётных и чётных элементов?
Верно
0
Заблокирован
02.04.2022, 15:21 11
Цитата Сообщение от MrPlatynum Посмотреть сообщение
Верно
Попробуй такую функцию:
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
#define odd(x)  ((x) & 1)
#define even(x) (~(x) & 1)
 
// в массиве найти такие 2 элемента, что если поменять местами,
// массив станет состоять из чередующихся нечётных и чётных элементов
bool foo(int* x, unsigned count, int places[2])
{
  assert(x && count > 1);
  unsigned found = 0;
  bool result = false;
 
  for (unsigned idx = 0; (found < 3) && (idx != count); idx++)
    if ((even(idx) && even(x[idx])) || (odd(idx) && odd(x[idx])))
      places[found++] = 1 + idx; // +1 - нумерация с 1
 
  switch (found)
  {
        case 0:
          result = count > 2;
          if (result) places[0] = 1, places[1] = 3;
        break;
 
        case 2:  result = true; break;
  }
 
  if (!result) places[0] = -1, places[1] = -1;
  return result;
}
Как-то кривовато выглядит, но вроде работает, как надо:

Runtime Error
0
Заблокирован
02.04.2022, 15:30 12
Сорри, небольшая правка:
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
31
#define odd(x)  ((x) & 1)
#define even(x) (~(x) & 1)
 
// в массиве найти такие 2 элемента, что если поменять местами,
// массив станет состоять из чередующихся нечётных и чётных элементов
bool foo(int* x, unsigned count, int places[2])
{
  assert(x && count > 1);
  unsigned found = 0;
  bool result = false;
 
  for (unsigned idx = 0; (found < 3) && (idx != count); idx++)
    if ((even(idx) && even(x[idx])) || (odd(idx) && odd(x[idx])))
    {
      if (found < 2) places[found] = 1 + idx; // +1 - нумерация с 1
      found++;
    }
 
  switch (found)
  {
    case 0:
      result = count > 2;
      if (result) places[0] = 1, places[1] = 3;
    break;
 
    case 2:  result = true; break;
  }
 
  if (!result) places[0] = -1, places[1] = -1;
  return result;
}
0
02.04.2022, 15:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2022, 15:30
Помогаю со студенческими работами здесь

Runtime Error, Signal 6
вопрос скорее теоретический, чем практический чем может быть вызван RE с возвращенным значением 6?...

Runtime error из ничего
Тест 9 с Timus Online Judge (http://acm.timus.ru/problem.aspx?space=1&amp;num=1369) выдает Runtime...

Почему runtime error
Вот сама задача http://********/?main=task&amp;id_task=120. #include &lt;algorithm&gt; #include &lt;fstream&gt;...

Runtime Error на задаче
Помогите друзья. Недавно участвовал на олимпиаде, решал одну задачу, но после отправки на сервер ,...

Shared_ptr runtime error
Всем привет. Решил наконец-то изучить умные указатели, а то чувствую себя древним. Начать решил...

Runtime error в задаче
При выполнении задачи выдаёт ошибку runtime error. Вот ссылка на задачу -...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru