1) Если изначальный массив НЕ дан, т.е необходимо его заполнить случайными числами
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void GetMaxAndMinIndex(int* data,int* MaxIndex,int* MinIndex) {
for (int i = 0; i < 200; ++i) {
if (data[i] > data[i + 1]) {
*MaxIndex = i;
}
if (data[i] < data[i + 1]) {
*MinIndex = i;
}
}
}
void SearchSrAr(int* data,int* MaxIndex,int* MinIndex) {
int tmpI = 0;
int TmpNum = 0;
for (int i = *MinIndex; i < *MaxIndex; ++i) {
TmpNum = TmpNum + data[i];
tmpI++;
}
double output = TmpNum / tmpI;
cout <<"Ваше число "<< output;
}
int main() {
setlocale(LC_ALL, "Russian");
int* data = new int[200];
int MaxIndex = 0, MinIndex = 100;
srand(time(NULL));
for (int i = 0; i < 200;++i) {
data[i] = rand() % 100;
}
GetMaxAndMinIndex(data, &MaxIndex, &MinIndex);
SearchSrAr(data, &MaxIndex, &MinIndex);
delete[] data;
}
И если этот массив и его размер нам известны
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void GetMaxAndMinIndex(int* data,int* MaxIndex,int * n,int* MinIndex) {
for (int i = 0; i < *n; ++i) {
if (data[i] > data[i + 1]) {
*MaxIndex = i;
}
if (data[i] < data[i + 1]) {
*MinIndex = i;
}
}
}
void SearchSrAr(int* data,int* MaxIndex,int* MinIndex) {
int tmpI = 0;
int TmpNum = 0;
for (int i = *MinIndex; i < *MaxIndex; ++i) {
TmpNum = TmpNum + data[i];
tmpI++;
}
double output = TmpNum / tmpI;
cout <<"Ваше число "<< output;
}
int main() {
setlocale(LC_ALL, "Russian");
int n;
cout << "Введите количество чисел в массиве " << endl;
cin >> n;
int* data = new int[n];
int MaxIndex = 0, MinIndex = 100;
cout << "Введите ваш массив " << endl;
for (int i = 0; i < n; ++i) {
cin >> data[i];
}
GetMaxAndMinIndex(data, &MaxIndex,&n, &MinIndex);
SearchSrAr(data, &MaxIndex, &MinIndex);
delete[] data;
}
Объяснение:
Код на с++
const
N = 10;
var
B: array[1..N+1] of integer;
Sum, i, first_even_i: integer;
Begin
WriteLn('Введите массив: ');
For i := 1 to N do
Read(B[i]);
For i := 1 to N-1 do
if (B[i+1] mod 2 <> 0) then
B[i] := 0;
For i := 1 to N do
if (B[i] mod 2 = 0) then
begin
first_even_i := i;
break;
end;
For i := N+1 downto first_even_i + 1 do
B[i] := B[i-1];
B[first_even_i] := 0;
WriteLn('Среднее арифметическое всех элементов: ', Sum / (N + 1));
WriteLn('Получившийся массив: ', B);
End.
s, w: string;
i, X, n, k, p, q: integer;
begin
Writeln('Введите фразу, разделяя слова ровно одним пробелом');
Readln(s);
Write('Введите номер слова для поиска: '); Readln(X);
{
Ищем в строке s местоположение слова номер Х.
Его начальную позицию в строке обозначим p, а конечную - q
}
n := Length(s);
i := 1; k := 0; p := 0; q := 0;
repeat
if s[i] = ' ' then
begin
Inc(k);
if k = X - 1 then p := i + 1
else if k = X then q := i - 1
end;
if q = 0 then i := i + 1
until (q > 0) or (i > n);
if (p = 0) then Writeln('Количество слов в строке меньше ', X)
else if q = 0 then q := n;
w := Copy(s, p, q - p + 1);
if (Pos('а', w) > 0) or (Pos('о', w) > 0) then
Writeln('Одна из букв (а,о) есть в слове "', w, '"')
else Writeln('В слове "', w, '" нет ни буквы а, ни буквы о')
end.
Тестовое решение:
Введите фразу, разделяя слова ровно одним пробелом
Самая лучшая рыба- это колбаса!
Введите номер слова для поиска: 5
Одна из букв (а,о) есть в слове "колбаса!"
Введите фразу, разделяя слова ровно одним пробелом
Тестирование программ может служить доказательством наличия ошибок, но никогда не докажет их отсутствие!» Эд. Дейкстра, 1972 г.
Введите номер слова для поиска: 4
В слове "служить" нет ни буквы а, ни буквы о