44 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 95
1

Поменять местами первый положительный и последний отрицательный элементы массива

19.01.2012, 23:54. Показов 6115. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив целых чисел (n=15), заполненный случайным образом числами из промежутка [-20,20].
нужно Состаить программу, в которой поменять местами первый положительный и последний отрицательный элементы.

Добавлено через 51 минуту
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub ikikik()
 
 
 
 Dim a(15) As Single, n As Integer, min As Single, max As Single
 
 For n = 1 To 15
    a(n) = Int(Rnd * 10 - 1) 'не знаю как сделать из заданого промежутка
    Cells(n, 1) = a(n)
 Next n
 min = a(1)
 max = a(1)
 For n = 1 To 15
    If a(n) > max Then max = a(n)
    If a(n) < min Then max = a(n)
Next n
 
 For n = 1 To 15
    max = min
    max = min
    Cells(n, 2) = a(n)
 Next n
 
 End Sub
Добавлено через 1 час 13 минут
Visual Basic
1
2
3
4
5
6
7
For n = 1 To 15
    If a(n) > max Then max = a(n)
    x = a(n)
    If a(n) < min Then max = a(n)
    y = a(n)
    a(n) = min: a(n) = max
Next n
поробовал так - не работает(

Добавлено через 33 минуты
Visual Basic
1
2
3
4
5
6
For n = 1 To 15
   If a(n) = max Or a(n) = min Then
   If a(n) = max Then a(n) = min Else a(n) = max
    Cells(n, 2) = a(n)
    End If
 Next n
???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2012, 23:54
Ответы с готовыми решениями:

Поменять местами первый и последний положительные элементы массива и вывести результаты в Excel
Вот такое задание : В заданном одномерном массиве размером N поменять местами первый и последний...

Поменять местами первый отрицательный и последний положительный элементы массива
Поменять местами первый отрицательный и последний положитель*ный элементы массива. Учесть...

Поменять местами первый положительный и последний отрицательный элементы массива
Дан одномерный массив целых чисел. Поменять местами первый положительный и последний отрицательный...

Поменять местами первый отрицательный и последний положительный элементы массива
Поменять местами первый отрицательный и послед¬ний положительный элементы массива. Учесть...

2
Эксперт WindowsАвтор FAQ
17986 / 7687 / 892
Регистрация: 25.12.2011
Сообщений: 11,461
Записей в блоге: 17
20.01.2012, 03:55 2
У Вас второй алгоритм - это нахождение минимального и максимального числа.
А из условий задачи, если правильно понял - нужно первое попавшееся положительное значение и последнее (т.е. первое попавшееся с конца массива) отрицательное.
Тогда так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Base 1
Sub ii()
Dim a(15) As Integer, n As Integer, plus As Integer, minus As Integer, t As Integer
Dim plus_ex As Boolean
Cells.Clear
For n = 1 To 15
    a(n) = Int(Rnd * 41) - 20
    Cells(n, 1) = a(n)
    If plus_ex = False And a(n) > 0 Then
        plus_pos = n: plus_ex = True
        Cells(n, 1).Interior.Color = vbGreen
    End If
    If a(n) < 0 Then minus_pos = n
Next n
Cells(minus_pos, 1).Interior.Color = vbRed
t = a(plus_pos)
a(plus_pos) = a(minus_pos)
a(minus_pos) = t
Range("B1:B15") = Application.Transpose(a)
Cells(plus_pos, 2).Interior.Color = vbRed
Cells(minus_pos, 2).Interior.Color = vbGreen
End Sub
Вот пример по-проще для понимания:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub jj()
Dim a(15) As Integer, n As Integer, p As Integer, m As Integer, t As Integer
For n = 1 To 15
    a(n) = Int(Rnd * 41) - 20  'берем значение от 0 до 40.999999, отбрасываем дробную часть, отнимаем 20
    Cells(n, 1) = a(n)
Next
For n = 1 To 15
    If a(n) > 0 Then p = n: Exit For 'если от начала массива нашли первое положительное значение - записіваем его позицию и выходим
Next
For n = 15 To 1 Step -1
    If a(n) < 0 Then m = n: Exit For 'если от конца массива нашли первое отрицательное значение - записіваем его позицию и выходим
Next
t = a(p) 'обмен значениями в записанных позициях через временную переменную
a(p) = a(m)
a(m) = t
For n = 1 To 15
    Cells(n, 2) = a(n)
Next
End Sub
1
44 / 0 / 0
Регистрация: 13.11.2011
Сообщений: 95
20.01.2012, 08:42  [ТС] 3
Да, вы правильно поняли. спасибо большое!
0
20.01.2012, 08:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2012, 08:42
Помогаю со студенческими работами здесь

Поменять местами первый положительный и последний отрицательный элементы массива
Дан массив целых чисел (n = 15), заполненный случайным образом числами из промежутка . Поменять...

Поменять местами первый отрицательный и последний положительный элементы массива
Поменять местами первый отрицательный и последний положительный элементы массива. Учесть...

Поменять местами первый отрицательный и последний положительный элементы массива
Поменять местами первый отрицательный и последний положительный элементы массива. Учесть...

Поменять местами первый отрицательный и последний положительный элементы массива
Поменять местами первый отрицательный и последний положительный элементы массива. Учесть...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru