В массивах определить количество элементов, лежащих в заданном интервале - 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
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. #define N 25
  6. #define M 21
  7.  
  8. int main() {
  9.     float* A = malloc(sizeof(float) * N);
  10.     int* idxA = malloc(sizeof(int) * N);
  11.     float* B = malloc(sizeof(float) * M);
  12.     int* idxB = malloc(sizeof(float) * M);
  13.     int i, lenA = 0, lenB = 0;
  14.     float a = 1.0, b = 1.0;
  15.  
  16.     A[0] = 0.25;
  17.     for (i = 1; i < N; ++i) {
  18.         A[i] = A[i - 1] * sin((float)i - 2.5);
  19.     }
  20.  
  21.     for (i = 0; i < M; ++i) {
  22.         B[i] = pow(-1, i) * sin(A[i]) / cos(A[i]);
  23.     }
  24.  
  25.     printf("elements: ");
  26.     for (i = 0; i < N; ++i) {
  27.         if ((-1 <= A[i]) && (A[i] <= 0)) {
  28.             a *= A[i];
  29.             idxA[lenA++] = i;
  30.             printf("%.5f ", A[i]);
  31.         }
  32.     }
  33.     printf("\n");
  34.     printf("op.: %f\n", a);
  35.     printf("cnt: %d\n", lenA);
  36.     printf("idx: ");
  37.     for (i = 0; i < lenA; ++i) {
  38.         printf("%d ", idxA[i]);
  39.     }
  40.     printf("\n\n");
  41.  
  42.     printf("elements: ");
  43.     for (i = 0; i < M; ++i) {
  44.         if ((-1 <= B[i]) && (B[i] <= 0)) {
  45.             b *= B[i];
  46.             idxB[lenB++] = i;
  47.             printf("%.5f ", B[i]);
  48.         }
  49.     }
  50.     printf("\n");
  51.     printf("op.: %f\n", b);
  52.     printf("cnt: %d\n", lenB);
  53.     printf("idx: ");
  54.     for (i = 0; i < lenB; ++i) {
  55.         printf("%d ", idxB[i]);
  56.     }
  57.     printf("\n\n");
  58.     free(idxB);
  59.     free(B);
  60.     free(idxA);
  61.     free(A);
  62.  
  63.     return 0;
  64. }

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

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

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


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

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

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы