Важное замечание: Программа будет работать только при компиляции компилятором, поддерживающим стандарт C99.
#include <stdio.h>
#include <stdlib.h>
int compare(const int* A, const int* B); // компаратор для qsort
int main()
{
int N;
printf("Введите размер массива: ");
scanf("%d", &N);
int
arr[N],
sum = 0,
number = 0;
for(int i = 0; i < N; i++)
scanf("%d", &arr[i]);
for(int i = 0; i < N; i++)
printf("%d ", arr[i]);
printf("\n");
for(int i = 0; i < N; i++)
{
if(arr[i])
sum += arr[i];
if((arr[i] % 3 == 0) && (i % 2 == 0))
number += 1;
}
qsort(arr, N, sizeof(int), compare);
for(int i = 0; i < N; i++)
printf("%d ", arr[i]);
printf("\nСумма положительных элементов = %d\n\
количество элементов, имеющих четные порядковые номера и являющиеся нечетными числами = %d", sum, number);
return 0;
}
int compare(const int* A, const int* B)
{
return *A - *B;
}
В условном операторе после if должно стоять логическое выражение.
Вы пишете о знаке равно, поэтому выражение должно иметь вид X=Y.
Х и Y - это выражения одного типа (числового, символьного и т.п.), значения которых должны совпасть. Так что если Х это некоторая переменная, то Y - это выражение, дающее ОДНО значение, которое и будет сравниваться со значением Х.
Если нужно проверить, находится ли Х в списке или диапазоне значений, можно использовать множества. Тогда в условном операторе нужно писать не знак равенства, а in:if x in [3..20] then ...
или
if x in [4,18,43,37,150] then ...
В PascalABC.NET проверку на попадание в диапазон лучше делать в виде
if Between(x,3,20) then ... - тут 3,20 - диапазон для х