Консультация № 202039
07.01.2022, 18:22
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Вычислить произведение чисел, принадлежащих промежутку (A,B], и количество отрицательных чисел, стоящих на местах, кратных 3. Как написать программу с++

Обсуждение

давно
Модератор
137394
1850
08.01.2022, 17:37
общий
08.01.2022, 21:01
это ответ
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>

void main() {
const int n = 20; // число элементов массива
const float A0 = -15.67; // минимальное случайное число в массиве
const float B0 = 1.789; // максимальное случайное число в массиве

const float A = -5.67; // левая граница правого полуинтервала
const float B = 1.65; // правая граница правого полуинтервала
const int k = 3; // кратность номеров в массиве для отрицательных чисел

float M[n];
double P;
int i, nAB, kA0B0, kAB;
time_t t;

clrscr(); // очистка экрана

srand((unsigned) time(&t));
for (i = 0; i < n; i++) M[i] = rand() / 32767. * (B0 - A0) + A0; //Заполнение массива случайными числами

P = 1;
nAB = 0;
kA0B0 = 0;
kAB = 0;

for (i = 0; i < n; i++) {
if (M[i] > A && M[i] <= B) {
printf("\n %5d%10.4f", i, M[i]);
P = P * M[i];
nAB++;
}
else printf("\n %20d%10.4f", i, M[i]);

if (M[i] < 0 && i % k == 0) {
kA0B0++;
if (M[i] > A && M[i] <= B) kAB++;
}
}

if (nAB != 0) printf("\nПроизведение %d чисел %7.3f < x <=%7.3f равно: %8.6e", nAB, A0, B0, P);
else printf("\nЧисла в полуинтервале %7.3f < x <=%7.3f не найдены", A0, B0);

printf("\nДля %7.3f < x <=%7.3f количество чисел <0, (индексы кратные %d) = %d", A0, B0, k, kA0B0);
printf("\nДля %7.3f < x <=%7.3f количество чисел <0, (индексы кратные %d) = %d", A, B, k, kAB);

}
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Форма ответа