Вычислить сумму отрицательных элементов массива - C (СИ) (73509)

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

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

Здравствуйте, прошу помочь в написании программы) Задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) Сумму отрицательных элементов массива; 2) Произведение элементов массива, расположенных между максимальным и минимальным элементами. Упорядочить элементы массива по возрастанию. Не получается сделать 2 задание. Плохо у меня с программированием( Вот что у меня получилось (Комментарии делал для себя, чтобы проще было ):
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "string.h"
#include "stdlib.h"
#include "time.h"
 
// Функция генерации случайных чисел в диапазоне от range_min до range_max
int rnd( int range_min, int range_max )
{
    return (double)rand() / (RAND_MAX + 1) * (range_max - range_min) + range_min;
}

int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");     
    srand( (unsigned)time(NULL) );
 
    int  i, j, n, maxS, minS;
    double tmp, z, w, max, min, s[100];
 
    //=========================================================================
 
    puts("Введите количество элементов массива:");
    scanf(" %d", &n);
 
    puts("\nМассив s:"); // массив со случайными значениями
    for(i=0; i<n; i++) 
        {
            s[i]=rnd(-5, 5);    // диапазон от –5 до 5
            printf("%lf ", s[i]);
        }
 
    //=========================================================================
 
    puts("\n\nМассив по возрастанию:"); // метод "Пузырька"
    
    for(i = 0; i <= n-1; i++)
    {
        for(j = 0; j <= n-2-i; j++)
        {
            if( s[j]<s[j+1] )
            {
                tmp = s[j];
                s[j] = s[j+1];
                s[j+1] = tmp;   
            }
        }
        printf("%lf ", s[j]);
    }
 
    //=========================================================================
 
    puts("\n\nСумма отрицательных элементов массива:");
    
    for (z=0, i=0; i<n; i++)
        {
            if (s[i]<0) z+=s[i];
        }
    printf("%lf", z);
 
    //=========================================================================
 
    puts("\n\nПроизведение элементов между минимальным и максимальным значениями:");
    //Максимальный элемент массива
    for (max=s[0], i=1; i<n; i++)
        if (s[i]>max)
        {
            max=s[i];
            maxS=i;
        };
    
    //Минимальный элемент массива:
    for (min=s[0], i=1; i<n; i++)
        if (s[i]<min)
        {
            min=s[i];
            minS=i;
        };
 
    for (w=1, i=0; i<n; i++)
        {
            if (i>minS && i<maxS) w*=s[i];
        };
    printf("%lf", w);
 
    //=========================================================================

    printf("\n\nPress any key...");
    getch();
}

Решение задачи: «Вычислить сумму отрицательных элементов массива»

textual
Листинг программы
for (max=s[0], i=1; i<n; i++)
                if (s[i]>max)
                {
                        max=s[i];
                        maxS=i;
                };
        
        //Минимальный элемент массива:
        for (min=s[0], i=1; i<n; i++)
                if (s[i]<min)
                {
                        min=s[i];
                        minS=i;
                };

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


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

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

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