Язык C. Вторая самостоятельная работа

E: Точная степень двойки

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.

Ввод Вывод
8
YES
3
NO

F: Уникальные элементы

Дан массив чисел типа int. Выведите те его элементы, которые встречаются в массиве только один раз.
Элементы нужно выводить в том порядке, в котором они встречаются в массиве.

Во входных данных вводится сначала количество элементов в массиве (число, не превышающее 100), а затем сами элементы.

Ввод Вывод
6
1 2 2 3 3 3
1

G: Числа Фибоначчи

Напишите функцию int phib(int n), которая по данному натуральному n возвращает n-e число Фибоначчи.

В этой задаче вам нужно написать рекурсивную функцию. Пользоваться циклами и массивами нельзя!

Ввод Вывод
6
8

H: Наибольшее число

Найти наибольшее из N чисел (вводится сначала число N, а затем — сами числа). N не превышает 100, сами числа лежат в диапазоне от -1000 до 1000.

В этой задаче вам нужно обязательно написать функцию, которая в качестве параметров принимает массив и количество элементов в нём, и результатом которой является значение наибольшего элемента этого массива. Функция main должна считывать этот массив, вызывать функцию поиска максимума и печатать результат. Решения, не удовлетворяющие этому требованию, приняты не будут.

Пример вводаПример вывода
5
2 4 3 7 4
7

I. Решение уравнения

Напишите программу, решающую уравнение Ax2+Bx+C=0 (где x — неизвестное).

Входные данные. Во входном файле записаны три числа A, B, C (по одному в строке). Каждое из этих чисел — целое и по модулю не превосходит 1000.

Выходные данные. В выходной файл выведите сначала количество корней этого уравнения, а затем сами эти корни в порядке возрастания, не меньше чем с тремя знаками после точки.
Если корней больше 1000, выведите одно число −1 (минус один).
Если корней нет, выведите 0 (ноль).

Пример вводаПример вывода
1 
0 
-2
2 -1.414 1.414
0 
1 
1
1 -1.000
1
2
3
0

J. Пересечение прямых

На плоскости даны две прямые. Каждая прямая задается парой точек, через которые она проходит. Требуется установить, пересекаются ли эти прямые и найти координаты точки пересечения.

Входные данные. Вводятся сначала координаты двух различных точек, через которые проходит первая прямая, а затем - координаты еще двух различных (но, быть может, совпадающих с первыми двумя) точек, через которые проходит вторая прямая. Координаты каждой точки - целые числа, по модулю не превышающие 1000.

Первые 4 числа записаны в первой строке, следующие 4 числа - во второй строке.

Выходные данные. Если прямые не пересекаются, выведите одно число 0. Если прямые совпадают, выведите 2. Если прямые пересекаются ровно в одной точке, то выведите сначала число 1, а затем два вещественных числа - координаты точки пересечения.

Пример вводаПример вывода
1 1 2 2
1 10 2 11
0
0 0 1 1
1 0 -1 2
1 0.5 0.5