В массивах определить количество элементов, лежащих в заданном интервале - 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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Определяются константы N и M
  3. Задаются начальные значения переменных a и b, а также инициализируются массивы A и B
  4. Заполняются массивы A и B значениями
  5. Вычисляются значения a и b
  6. Выводится информация о найденных значениях a и b, а также индексах их элементов в массивах A и B

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы