Надо найти второй положительный элемент массива. Вот мои наработки:
program summa;
var
a: array [1..100] of integer;
i, sum, n: integer;
begin
Randomize;
Write('Введите размер массива: ');
Readln(n);
Writeln('Массив:');
for i := 1 to n do
begin
a[i] := Random(20) - random(17);
Write(a[i]:4);
end;
Writeln;
sum:=0;
for i := 1 to n do
///решение
end.
Kromster
13.5k12 золотых знаков43 серебряных знака72 бронзовых знака
задан 22 июн 2018 в 7:26
4
program HelloWorld;
var
a: array [1..100] of integer;
i, sum, n, k: integer;
begin
Randomize;
k:=0;sum:=0;
Write('Введите размер массива: ');
Readln(n);
Writeln('Массив:');
for i := 1 to n do
begin
a[i] := Random(0) - random(20);
if a[i] > 0 then begin inc(k);
if k = 2 then sum := a[i]; end;
Write(a[i]:4);
end;
writeln;
case k of
0: Writeln('Нет положительных элементов');
1: Writeln('Нет второго положительного элемента');
else Writeln('Второй положительный элемент : ',sum);
end;
end.
ответ дан 22 июн 2018 в 7:34
5
qwertun 9 / 9 / 1 Регистрация: 22.12.2012 Сообщений: 508 |
||||
1 |
||||
Как найти второй положительный элемент массива?23.02.2013, 10:21. Показов 2398. Ответов 6 Метки нет (Все метки)
В лабе требуется найти произведение элементов массива с чётными номерами записать на место второго положительного элемента.
P.S. В этом коде оно записывает произведение вместо последнего положительного
0 |
dan24 167 / 106 / 30 Регистрация: 19.01.2013 Сообщений: 831 |
||||
23.02.2013, 10:45 |
2 |
|||
0 |
Димон_ 136 / 104 / 9 Регистрация: 30.01.2011 Сообщений: 699 |
||||
23.02.2013, 10:55 |
3 |
|||
Кликните здесь для просмотра всего текста
0 |
167 / 106 / 30 Регистрация: 19.01.2013 Сообщений: 831 |
|
23.02.2013, 11:06 |
4 |
Что-то криво у тебя работает Димон. Хм.
1 |
136 / 104 / 9 Регистрация: 30.01.2011 Сообщений: 699 |
|
23.02.2013, 11:07 |
5 |
dan24,А, блин. Я нашел все четные элементы массива..а надо с четными номерами. Но
записать на место второго положительного элемента. можно использовать.
0 |
167 / 106 / 30 Регистрация: 19.01.2013 Сообщений: 831 |
|
23.02.2013, 11:12 |
6 |
Ну, ладно. Я тоже неахти помошник((
0 |
Димон_ 136 / 104 / 9 Регистрация: 30.01.2011 Сообщений: 699 |
||||
23.02.2013, 11:19 |
7 |
|||
Кликните здесь для просмотра всего текста
1 |
Формулировка задачи:
В лабе требуется найти произведение элементов массива с чётными номерами записать на место второго положительного элемента.
Как найти второй положительный элемент?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace laba2_mass { class Program { public const int n = 10; public static void Main() { int[] a = new int[n]; int i, idx1 = 0, idx2 = 0, p = 1; Console.WriteLine("Массив"); Random rand = new Random(); for (i = 0; i < n; i++) { a[i] = rand.Next(-10, 10); Console.Write(a[i] + " "); } Console.WriteLine(); Console.WriteLine(); //============================// for (i = 0; i < n; i++) { if(i == 1 || i == 3 || i == 5 || i == 7 || i == 9) p *= a[i]; } Console.WriteLine("p = " + p + "n"); //============================// for (i = 0; i < n; i++) { if (a[i] > 0) { if (idx1 == 0) { idx1 = i; } if (idx1 < i) { idx2 = i; } } } Console.WriteLine("a[idx1] = " + a[idx1] + "n"); Console.WriteLine("idx1 = " + idx1 + "n"); Console.WriteLine("a[idx2] = " + a[idx2] + "n"); Console.WriteLine("idx2 = " + idx2 + "n"); //===========================// for (i = 0; i < n; i++) { if (i == idx2) { a[idx2] = p; } Console.Write(a[i] + " "); } Console.WriteLine(); Console.ReadKey(); } } }
P.S. В этом коде оно записывает произведение вместо последнего положительного
Код к задаче: «Как найти второй положительный элемент массива?»
textual
int multiplication =1; int wtf = 0; int[] massiv = new int[10]; Random rnd = new Random(); bool a = false; bool b = true;//если начинаем с четного элемента for (int i = 0; i < massiv.Length; i++) { massiv[i] = rnd.Next(-10, 10); if (massiv[i] > 0 && a == true) wtf = i; if (massiv[i] > 0) a = true; if(b){ multiplication *= massiv[i]; b=false;} else b=!b; } massiv[wtf] = multiplication; Console.WriteLine("2 положительный элемент массива = {0}",massiv[2]); //Кривовато, но пишет вместо второго. А вообще генерация нуля все портит.
Полезно ли:
13 голосов , оценка 3.846 из 5
найти первый и второй положительный элемент массива
как с помощью цикла while найти первый и второй положительный элемент массива
const N = 10; var a: array [1..N] of integer; i: integer; i1, i2: integer; begin {init random} for i:=1 to N do a[i]:=random(100)-50; write('array: '); for i:=1 to N do write(a[i]:4); writeln; i1 := 0; i2 := 0; i := 1; while (i1 = 0) or (i2 = 0) do begin if a[i] > 0 then begin if i1 = 0 then begin i1 := i; end else begin if i2 = 0 then begin i2 := i; end; end end; inc(i); if (i > N) then begin break; end end; if i1 > 0 then begin writeln('first positive element: a[', i1, '] = ', a[i1]); if i2 > 0 then begin writeln('second positive element: a[', i2, '] = ', a[i2]); end else begin writeln('no second positive element'); end; end else begin writeln('no positive element at all!'); end; end.
вывод
array: 45 -22 -15 32 -9 9 29 3 -26 -49 first positive element: a[1] = 45 second positive element: a[4] = 32
Голосование за лучший ответ
vinnitu
Мыслитель
(5701)
13 лет назад
так же как и с for
перебираешь элементы проверяя элементы на >0 – досчитываешь до 2 и выходишь и цикла
PS: смотри почту – там подробнее или на моем блоге resheno [at] blogspot [at] com
Алексей
Профи
(985)
13 лет назад
ничего сложного нет, ты наверное и не пробовала