#include<iostream>
#include<ctime>
#include<iomanip>
using namespace std;
void FillArray(int*& arr, int size)
{
for (int i = 0; i < size; i++)
{
arr[i] = rand() % 100;
}
}
void ShowArray(int*& arr, int size)
{
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl << endl;
}
bool CheckArray(int*& arr, int size, int& sum, int& k, int& ki)
{
bool incSeq = 1;
for (int i = 0; i < size; i++)
{
if (arr[i] % 2 == 0)
{
sum += arr[i];
ki++;
}
if (arr[i] > 0)
{
k++;
}
}
for (int i = 1; i < size; i += 2)
{
if (arr[i] > arr[i + 2])
{
incSeq = 0;
break;
}
}
return incSeq;
}
int main()
{
srand(time(0));
setlocale(LC_ALL, "ru");
int sum = 0;
int k = 0;
int ki = 0;
int size = 0;
cout << "Укажите размер массива - ";
cin >> size;
int* arr = new int[size];
FillArray(arr, size);
ShowArray(arr, size);
CheckArray(arr, size, sum, k, ki);
if (CheckArray)
{
cout << "\n\nСредне арифметическое равно " << fixed << setw(6) << setprecision(2) << (double)(sum / ki);
}
else
{
cout << "\n\nКол-во чет. эл-ов\n\n - " << k;
}
delete[]arr;
}
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Напишите программу, которая в последовательности целых чисел находит среднее арифметическое чисел, кратных 9, или сообщает, что таких чисел нет. программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не является членом последовательности количество чисел не превышает 100. введённые числа по модулю не превышают 300. программа должна вывести среднее арифметическое чисел, кратных 9, или вывести no, если таких чисел в последовательности нет.
var a, i, count, s: integer; begin repeat if(i = 100) then break; readln(a); if(abs(a) > 300) then begin writeln('число по модулю не может быть > 300.'); continue end else if(a mod 9 = 0) and (a < > 0) then begin inc(count); s : = s + a; end; if(a < > 0) then inc(i); until(a = 0); writeln('среднее арифметическое: ', s / count); end.