Важное замечание: Программа будет работать только при компиляции компилятором, поддерживающим стандарт 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]);
printf("%d ", arr[i]);
printf("\n");
if(arr[i])
sum += arr[i];
if((arr[i] % 3 == 0) && (i % 2 == 0))
number += 1;
}
qsort(arr, N, sizeof(int), compare);
printf("\nСумма положительных элементов = %d\n\
количество элементов, имеющих четные порядковые номера и являющиеся нечетными числами = %d", sum, number);
return 0;
int compare(const int* A, const int* B)
return *A - *B;
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
Важное замечание: Программа будет работать только при компиляции компилятором, поддерживающим стандарт 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;
}
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).