В массивах определить количество элементов, лежащих в заданном интервале - C (СИ) (73062)
Формулировка задачи:
Здравствуйте!
Я не могу справиться со своей лабораторной работой, и буду весьма признателен, если вы мне поможете
Состоит работа из двух частей, и если с первой, я сломя голову справлюсь, то со второй я бессилен
I
В массивах A(25) и B(21) определить количество элементов, лежащих в интервале [-1,0], а так же их произведение и номера. A0=0,25 AI+1=Ai*sin(I-2,5) Bi=(-1)i*sin(Ai)/cos(Ai); Вывести на экран для каждого массива: элементы массива (5 знаков после десятичной точки) в строку, количество элементов, принадлежащих интервалу [-1,0] , их произведение и номера. При выводе элементов массива обеспечить их согласованное расположение друг под другом в строках на экране.II
Составить эту же программу, но с использованием функции malloc. Спасибо.Решение задачи: «В массивах определить количество элементов, лежащих в заданном интервале»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 25
#define M 21
int main() {
float* A = malloc(sizeof(float) * N);
int* idxA = malloc(sizeof(int) * N);
float* B = malloc(sizeof(float) * M);
int* idxB = malloc(sizeof(float) * M);
int i, lenA = 0, lenB = 0;
float a = 1.0, b = 1.0;
A[0] = 0.25;
for (i = 1; i < N; ++i) {
A[i] = A[i - 1] * sin((float)i - 2.5);
}
for (i = 0; i < M; ++i) {
B[i] = pow(-1, i) * sin(A[i]) / cos(A[i]);
}
printf("elements: ");
for (i = 0; i < N; ++i) {
if ((-1 <= A[i]) && (A[i] <= 0)) {
a *= A[i];
idxA[lenA++] = i;
printf("%.5f ", A[i]);
}
}
printf("\n");
printf("op.: %f\n", a);
printf("cnt: %d\n", lenA);
printf("idx: ");
for (i = 0; i < lenA; ++i) {
printf("%d ", idxA[i]);
}
printf("\n\n");
printf("elements: ");
for (i = 0; i < M; ++i) {
if ((-1 <= B[i]) && (B[i] <= 0)) {
b *= B[i];
idxB[lenB++] = i;
printf("%.5f ", B[i]);
}
}
printf("\n");
printf("op.: %f\n", b);
printf("cnt: %d\n", lenB);
printf("idx: ");
for (i = 0; i < lenB; ++i) {
printf("%d ", idxB[i]);
}
printf("\n\n");
free(idxB);
free(B);
free(idxA);
free(A);
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяются константы N и M
- Задаются начальные значения переменных a и b, а также инициализируются массивы A и B
- Заполняются массивы A и B значениями
- Вычисляются значения a и b
- Выводится информация о найденных значениях a и b, а также индексах их элементов в массивах A и B