Сформировать вектор и найти сумму его элементов из заданного интервала - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста доделать задание! я сделала только первое (((((( Буду очень благодарна всем кто поможет..... Вектор А[1:20] сформировать из вещественных случайных чисел в диапазоне [-10 10]. а) найти сумму S элементов из интервала [-3 +6]. б) найти произведение этой суммы на min элемент вектора. в) найти номер максимального элемента между номерами 5 и 15. г) удалить 16-ый элемент вектора.
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
    int i,n,m,nmin,nmax;
    int min,max;
    int sum,sum1,pr,pr1;
    int mas1[20];
    time_t t;//Текущее время для инициализации генератора случайных чисел
    srand((unsigned) time(&t));//инициализациz генератора случайных чисел
    printf("Ishodn vector A\n");
    for (i=0; i<=19 ;i++)
    {
        mas1[i]=rand()%20-10;
        printf(" %3d",mas1[i]);
        if ((i+1)%5==0)printf("\n");
    }
    sum=0;
    pr=1;
    for (i=0; i<=19 ;i++)
    {
        if (mas1[i]>=-3 && mas1[i]<=6) sum+=mas1[i];
    }
    printf("S=%3d\t    P=%3d\n",sum,pr);
system("PAUSE"); 
return EXIT_SUCCESS;
}

Решение задачи: «Сформировать вектор и найти сумму его элементов из заданного интервала»

textual
Листинг программы
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
    int i,n,m,nmin,nmax;
    int min,max;
    int sum,sum1,pr,pr1;
    int mas1[20];
    time_t t;//Текущее время для инициализации генератора случайных чисел
    srand((unsigned) time(&t));//инициализациz генератора случайных чисел
    printf("Ishodn vector A\n");
    for (i=0; i<=19 ;i++)
    {
        mas1[i]=rand()%20-10;
        printf(" %3d",mas1[i]);
        if ((i+1)%5==0)printf("\n");
    }
    sum=0;
    pr=1;
    for (i=0; i<=19 ;i++)
    {
        if (mas1[i]>=-3 && mas1[i]<=6) sum+=mas1[i];
    }
    printf("S=%3d\t    P=%3d\n",sum,pr);
    //задание б
    min=mas1[0];
    for(int i=0;i<20;i++)
        if(min>mas1[i])min=mas1[i];
    pr=sum*min;
    printf("P=%3d\n",pr);
    //задание в - между, как по мне - это не включая 5 и 15
    max=mas1[5];
    for(int i=5;i<14;i++)
        if(max<mas1[i])max=mas1[i];
    printf("max=%3d\n",max);
    //задание г
    for(int i=15;i<19;i++)
        mas1[i]=mas1[i+1];
    for (i=0; i<19 ;i++)
    {
        printf(" %3d",mas1[i]);
        if ((i+1)%5==0)printf("\n");
    }
    printf("\n");
    system("PAUSE"); 
    return EXIT_SUCCESS;
}

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

В этом коде:

  1. Объявляются переменные: i, n, m, nmin, nmax, min, max, sum, sum1, pr, pr1, mas1[20], t.
  2. Инициализируются массивы и генератор случайных чисел.
  3. Выводится вектор A.
  4. Находится сумма элементов вектора, удовлетворяющих условию.
  5. Вычисляется значение P по формуле из задания.
  6. Находится минимальное значение в массиве.
  7. Вычисляется значение P по формуле из задания.
  8. Находится максимальное значение в массиве.
  9. В массиве сдвигаются элементы, чтобы получить вектор B.
  10. Выводится вектор B.
  11. Выводится сообщение Press any key to continue....
  12. Возвращается EXIT_SUCCESS.

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


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

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

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