Найти сумму положительных элементов массива - C (СИ) (73285)

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

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

#include "locale.h"      //    для корректного вывода в консоль русского языка
#include <stdio.h>       //    для вывода в консоль
#include <conio.h>       //    для доступа к команде _getch()
#include <time.h>        //    для доступа к time
#include <stdlib.h>     
 
int main()
{
    int n, //размер массива
    i,
    S=0, //сумма пол. элементов массива 
    P=1,//произведение
    min,
    indexMin=0,
    max,
    indexMax=0;
    int *array1;
    char *loc;           //    переменная для корректного вывода в консоль русского языка
     loc = setlocale(LC_ALL,"Russian");
    printf("Введите размерность массива: ");
    scanf_s("%d", &n);
    array1=(int*)malloc(n*sizeof(int));
    srand(time(NULL));      //     встряхивание генератора
        for (i=0; i<n; i++)
    {
        array1[i] = rand() %100 - 50;
        printf("  %d", &array1[i]);
        if (array1[i]>0)            //нахождение суммы положительных элементов
        {
           S+=array1[i];        
        }
    }
    printf("\nСумма положительных элементов массива: %i\n", S);
    min = abs(array1[0]);
    max = abs(array1[0]);
    for (i=0; i<n; i++)
    {
        if (abs(array1[i])>abs(max))//нахождение максимального элемента
        {
            max = array1[i];
            indexMax=i;   
        }
        if (abs(array1[i])<abs(min))//нахождение минимального элемента
        {
            min = array1[i];
            indexMin=i;  
        }       
    }
 
    printf("Минимальный по модулю элемент массива: %d", &min);
    printf("\n его индекс: %d\n", &indexMin);
    printf("Максимальный по модулю элемент массива: %d", &max);
    printf("\n его индекс: %d\n", &indexMax);
  
   //вычисление произведения
    if (indexMin<indexMax) 
    {
       for (i=indexMin; i<indexMax; i++) 
       {
           P*=array1[i];    
       }
    }
    else
    {
       for (i=indexMax; i<indexMin; i++)
       {
           P*=array1[i];    
       }
        
    }
    printf("\nПроизведение элементов массива между минимальным и максимальным: %d", &P);
    free(array1);
    _getch();
    return 0;
}
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Программа записывает в массив числа которых быть не может, но сумму считает правильно(вводил числа вручную) Делаю в Visual Studio 2010

Решение задачи: «Найти сумму положительных элементов массива»

textual
Листинг программы
printf("Минимальный по модулю элемент массива: %d", &min);
* * printf("\n его индекс: %d\n", &indexMin);
* * printf("Максимальный по модулю элемент массива: %d", &max);
* * printf("\n его индекс: %d\n", &indexMax);

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

  1. Вначале программа находит минимальный по модулю элемент массива и сохраняет его значение в переменной min, а его индекс в переменной indexMin.
  2. Затем программа находит максимальный по модулю элемент массива и сохраняет его значение в переменной max, а его индекс в переменной indexMax.
  3. После этого программа выводит на экран сообщение с минимальным элементом массива и его индексом.
  4. Затем программа выводит на экран сообщение с максимальным элементом массива и его индексом.

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


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

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

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