C/C++

Массивы в языке Си

Помогите в написании программы на языке С

В одномерном массиве, состоящем из n целых элементов, вычислить:
А) сумму отрицательных элементов;
Б) количество элементов массива, расположенных между первым
и последним четными положительными элементами;
В) поменять местами последний минимальный элемент и первый
максимальный.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
#define N 10
int A[N + 1];
int i, s, m;

srand(time(0));
for(i = 1; i <= N; i++)
{
A[i] = -5 + rand() % 11;
printf("%d ", A[i]);
}printf("\n");

/*А*/
s = 0;
for(i = 1; i <= N; i++)
if(A[i] < 0)
s += A[i];
printf("А) %d\n", s);

/*Б*/
for(i = N; i >= 1; i--)
if((A[i] > 0) && (A[i] % 2 == 0))
{
s = i;
break;
}
for(i = 1; i <= N; i++)
if((A[i] > 0) && (A[i] % 2 == 0))
{
s -= i;
break;
}
if(i <= N)
if(s >= 0)
printf("Б) %d\n", s - 1);
else
printf("Б) 0\n");
else
printf("Б) В массиве нет чётных положительных элементов. \n");

/*В*/
s = 1;
for(i = 1; i <= N; i++)
if(A[i] < A[s])
s = i;
m = N;
for(i = N; i >= 1; i--)
if(A[i] > A[m])
m = i;
i = A[s];
A[s] = A[m];
A[m] = i;
printf("В) ");
for(i = 1; i <= N; i++)
printf("%d ", A[i]);

printf("\nНажмите клавишу Enter, для продолжения...");
getchar();
return 0;
}
АЯ
Антон Яхонтов
11 953
Лучший ответ
На Javascript могу подсобить. Язык Си-подобный, так что по любому принцип одинаков
let arr = [5,-3,6,-9,12,7,12,-9,0,6,4,7,5,7];
let max = arr[0];
let min = arr[0];
let s = 0;
let f = 0;
let l = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0 && arr[i] > 0) {
f = i;
break
}
};
for (let i = arr.length; i > 0; i--) {
if (arr[i] % 2 == 0 && arr[i] > 0) {
l = i;
break
}
};
let c = 0;
for (var i = f + 1; i < l; i++) {
c += 1
};
for (let i = 0; i < arr.length; i++) {
if (arr[i] < 0) {
s += arr[i]
}
if (arr[i] > max) {
max = arr[i]
}
if (arr[i] < min) {
min = arr[i]
}
};
let lastMin = arr.lastIndexOf(min);
let firstMax = arr.indexOf(max);
let temp = arr[lastMin];
arr[lastMin] = arr[firstMax];
arr[firstMax] = temp;
Пуфик Зибауба
Пуфик Зибауба
61 740