Форум программистов, компьютерный форум, киберфорум
Наши страницы
QBasic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Андрээ
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 4
#1

В исходном массиве с четным числом элементов поменять местами соседние элементы

12.05.2012, 21:02. Просмотров 518. Ответов 6
Метки нет (Все метки)

В исходном массиве с четным числом элементов поменять местами соседние элементы. Вывести исходный и полученный массивы.
Вот прога:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CLS
INPUT "razmer massiva m="; m
DIM A(m)
FOR i=1 TO m
INPUT A(i)
? A(i)
NEXT i
DIM b(c)
FOR c=1 TO m
b(c) = A(i+1)
b(c-1) = A(i)
? b(c)
NEXT c
END
После ввода элементов первого массива выдаёт "Subscribe out of range"
Что делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2012, 21:02
Ответы с готовыми решениями:

Поменять местами в массиве первый и второй элементы, третий и четвёртый
Необходимо сделать программу, которая будет менять местами массивы первый и...

В двумерном массиве чисел поменять местами элементы симметричные относительно главной диагонали.
В двумерном массиве чисел поменять местами элементы симметричные относительно...

Определите, является ли сумма элементов матрицы четным числом
1) Для заданной целочисленной матрицы А(N,М) определите, является ли сумма ее...

В исходном массиве X(n) вывести номера тех элементов массива, которые являются простыми числами.
Задание № 1. В исходном массиве X(n) вывести номера тех элементов массива,...

В массиве поменять местами 1-ю строку с последней
QBasic: Обращение 38С: В массиве поменять местами 1-ю строку с последней,...

6
softmob
1250 / 700 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
12.05.2012, 22:00 #2
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INPUT "enter n: ", n
DIM a(n)
FOR i = 1 TO n
    INPUT "enter val: ", a(i)
NEXT
FOR i = 1 TO n
    PRINT a(i);
NEXT
FOR i = 1 TO n / 2
    SWAP a(2 * i - 1), a(2 * i)
NEXT
PRINT STRING$(80, 196)
FOR i = 1 TO n
    PRINT a(i);
NEXT
0
Андрээ
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 4
13.05.2012, 13:32  [ТС] #3
Спасибо, но я даже операторов таких не знаю))помогите в моем коде найти ошибку пожалуйста
0
PAnT0P
1023 / 547 / 106
Регистрация: 26.03.2012
Сообщений: 987
13.05.2012, 13:32 #4
Цитата Сообщение от Андрээ Посмотреть сообщение
После ввода элементов первого массива выдаёт "Subscribe out of range"
Что делать?
После выхода из первого цикла в i у тебя находится число m+1 т.е. индекс находится за пределами массива. При объявлении DIM b(c) у тебя не задан параметр с т.е. по умолчанию он равен 0, потом в b(c-1) индекс становится равным -1, индекс массива не может быть меньше нуля. И также с циклом FOR c=1 TO m, массив то у нас получился b(0)
0
Андрээ
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 4
13.05.2012, 13:44  [ТС] #5
Эмм...мало что понял)что поменять тогда в моем коде надо?
0
softmob
1250 / 700 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
13.05.2012, 15:10 #6
Цитата Сообщение от Андрээ Посмотреть сообщение
Спасибо, но я даже операторов таких не знаю))помогите в моем коде найти ошибку пожалуйста
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
INPUT "enter n: ", n
DIM a(n)
FOR i = 1 TO n
    INPUT "enter val: ", a(i)
NEXT
FOR i = 1 TO n
    PRINT a(i);
NEXT
FOR i = 1 TO n / 2
    t = a(2 * i - 1)
    a(2 * i - 1) = a(2 * i)
    a(2 * i) = t
NEXT
PRINT
FOR i = 1 TO n
    PRINT a(i);
NEXT
или исправленная ваша версия:
Добавлено через 5 минут
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CLS
INPUT "razmer massiva m="; m
DIM a(m), b(m)
FOR i = 1 TO m
    INPUT a(i)
NEXT
FOR i = 1 TO m
    PRINT a(i);
NEXT
FOR i = 1 TO m STEP 2
    b(i) = a(i + 1)
    b(i + 1) = a(i)
NEXT
PRINT
FOR i = 1 TO m
    PRINT b(i);
NEXT
END
0
Андрээ
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 4
13.05.2012, 22:55  [ТС] #7
о, спасиботак что же у меня тогда не так?надо было сразу два массива объявить?
0
13.05.2012, 22:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2012, 22:55

В массиве поменять местами 1-ю строку с последней
В массиве поменять местами 1-ю строку с последней, На эту тему был запрос,...

В массиве поменять местами попарно строки
В массиве поменять местами попарно строки (1-ю строку со 2-й, 3-ю с 4-й и т....

Поменять местами положительные и отрицательные числа в массиве
Помогите пожалуйста, с клавиатуры вводится массив из 10 чисел(положительных и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru