Найти сумму элементов массива, расположенных между первым и вторым отрицательным элементом - C (СИ)
Формулировка задачи:
Массив динамический. Пользователь сам задаёт размерность. Все элементы массива вещественные числа.
Написал вот такую программку. Увы не доконца. Не могу понять как сделать 2 и 3 пункт.
Задание следующие:
1.Найти номер минимального элемента массива (это я сделал)
2.Найти сумму эллементов массива, расположенных между первым и вторым отрицательным элементом.
3.Преобразовать массив таким образом, чтобы сначала рсполагались все элементы, модуль которых не превышает 1, а потом - все остальные.
Помогите пожалуйста. И если не сложно прицепите к коду коментарии.)
#include <stdio.h> #include <conio.h> #include <math.h> int main () { int n=0; printf("Please input the size of the array:\n"); scanf("%i",&n); float *a=new float[n]; printf("Please input the ellements of the array as natural numbers:\n"); for(int i=0;i<n;i++) { scanf("%f",&a[i]); } printf("Array ellements by input order:\n"); for(int i=0;i<n;i++) { printf("___%f___\n", a[i]); } float min=a[0]; int minnum=0; for (int i=0;i<n;i++) { if (min>a[i]) { min=a[i]; minnum=i; } } printf("The smallest array ellement is:\n___%f___", min); printf("\nThe number of this ellement is:\n___%i___", minnum); getch(); return 0; }
Решение задачи: «Найти сумму элементов массива, расположенных между первым и вторым отрицательным элементом»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> main() { int arr[10], sum = 0, i, d, p1, p2; system("cls"); srand(time(NULL)); printf("Sformurovanui massuv: \n"); for(i = 0; i < 10; i++) { arr[i] = rand () % 100 - 50; printf("%d ",arr[i]); } d = 0; for(i = 0; i < 10; i++) { if(arr[i] < 0) { d = d + 1; if (d == 1) p1 = i; if (d == 2) p2 = i; } } printf("\n"); system("pause"); for(i = 0; i < 10; i++) { if((i > p1) && (i < p2)) sum = sum + arr[i]; } printf("Sum = %d", sum); getch(); }
Объяснение кода листинга программы
- Объявление переменных:
arr
- массив из 10 целых чисел;sum
- переменная для хранения суммы;i
- счетчик для внешнего цикла;d
- счетчик для внутреннего цикла;p1
иp2
- индексы для хранения отрицательных чисел.
- Инициализация массива:
С помощью функции
rand()
генерируются случайные числа от -50 до 50 и записываются в массивarr
. - Поиск первого и второго отрицательных чисел:
Внутренний цикл проходит по всем элементам массива. Если элемент отрицательный, увеличивает счетчик
d
и сохраняет индекс вp1
при первом отрицательном числе и вp2
при втором. - Вывод массива: Внешний цикл выводит все элементы массива.
- Поиск суммы элементов между первым и вторым отрицательными числами:
Внутренний цикл проходит по элементам массива. Если элемент находится между
p1
иp2
, его значение добавляется кsum
. - Вывод результата:
Выводится значение переменной
sum
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д