
Смирнова_Мария_2370_Лабораторная_2
.docxСмирнова Мария 2370 Задание №2
Задание:
С клавиатуры вводится последовательность целых чисел (признак окончания последовательности – ввод числа 0). Необходимо вывести на экран:
а) среднее арифметическое введенных чисел;
б) разницу между максимумом и минимумом;
в) количество положительных чисел, кратных числу 5;
г) количество чисел, являющихся степенью двойки;
д) количество чисел, превышающих сумму двух предшествующих членов последовательности.
Программа:
#include <iostream>
#include <cmath>
#include <limits>
using namespace std;
int x = 1;
int countA = -1;
int summa = 0;
float srznach = 0;
int countB = 0;
int q;
int countG = 0;
int countx2 = 0;
int summax2 = 0;
int x1 = 0;
int x2 = 0;
int main() {
setlocale(LC_ALL, "rus");
int maxz = x;
int minz = x;
while (x != 0) {
cin >> x;
//ПУНКТ А
countA += 1;
summa += x;
//ПУНКТ Б
maxz = max(maxz, x);
minz = min(minz, x);
//ПУНКТ В
if (x > 0 and x % 5 == 0) {
countB += 1;
}
//ПУНКТ Г
q = x;
if (x != 0) {
while (q % 2 == 0) {
q = q / 2;
}
if (q == 1) {
countG++;
}
}
//ПУНКТ Д
if (x1 == 0) {
x1 = x;
}else{
if (x2 != 0) {
summax2 = x1 + x2;
if (summax2 < x) {
countx2 = countx2 + 1;}
}else {
x2 = x1;
x1 = x;}}
}
srznach = summa / countA;
cout << "Cреднее арифметическое введенных чисел: " << srznach << endl;
cout << "Разница между максимумом и минимумом: " << maxz - minz << endl;
cout << "Количество положительных чисел, кратных числу 5: " << countB << endl;
cout << "Количество чисел, являющихся степенью двойки: " << countG << endl;
cout << "Количество чисел, превышающих сумму двух предшествующих членов последовательности:" << countx2;
}
Р
езультат:
Блок-схема: