Вычислить сумму отрицательных элементов массива - 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; };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д