#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
#define N 16
void main()
{
int randomNumbers[N];
srand(time(NULL));
for (int i = 0;i < N; i++)
{
randomNumbers[i] = rand() % 40 - 20;
cout << "randomNumber[" << i << "] = " << randomNumbers[i] << endl;
}
cout << endl;
int counter = 0;
for (int i = 0; i < N; i++)
{
if (randomNumbers[i] < 0)
{
counter++;
}
}
cout << "counter = " << counter << endl;
}
Поделитесь своими знаниями, ответьте на вопрос:
1. значения элементов одномерного массива s размерности k уменьшить на значение его минимального элемента. 2. найти и напечатать первые положительные элементы строк матрицы а размерности m×k.
// Внимание! Если программа не работает, обновите версию!
№1
begin
var s:=ArrRandom(ReadInteger('k='),1,50); s.Println;
var min:=s.Min;
s.Transform(x->x-Min); s.Println
end.
Пример
k= 13
41 31 28 2 50 46 7 31 40 30 13 8 26
39 29 26 0 48 44 5 29 38 28 11 6 24
№2
begin
var m:=ReadInteger('Количество строк в матрице:');
var k:=ReadInteger('Количество столбцов в матрице:');
Writeln('*** Исходная матрица [',m,',',k,'] ***');
var a:=MatrRandom(m,k,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln('Первые положительные элементы в строках');
a.Rows.Select(r->r.Where(x->x>0).Take(1)).SelectMany(x->x).Println
end.
Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
-91 -83 -26 4 -40 33 -40 -6
71 -87 -8 65 94 -19 59 -9
-91 -17 69 32 30 90 63 4
-53 -52 93 4 -34 -70 -75 -95
-99 -42 95 69 -70 -62 39 -22
Первые положительные элементы в строках
4 71 69 93 95