Помогите с программой С++ if else

В общем абсолютно не понимаю что делать, условия задания таковы что

1.С помощю одного цикла предвидеть ввод/вывод входных и выходных данных

2.С помощю двух цикл предвидеть ввод/вывод входных и выходных данных

y3=tan(a*x) при x==5

y3=кубический корень с a+x при x<5

y3= tan (модуль a*x) при 5<x<8

Где а=3.2, x=-1.5, 8, 12, 3, 6,7 (При х>=8 и x=0 функция не просчитывается)

Получился у меня такой код


include <iostream>

include <cmath>

using namespace std;


int main()

{

setlocale(LC_ALL, "rus");

int i=0;

float x,y3,a;

cout << "Введите первое число a: ";

cin >> a;

while(i<7)

{

cout << "Введите второе число x: ";

cin >> x;

if (x>=8)


cout << "\nФункція не визначається\n";

if (x==0)


cout << "\nФункція не визначається\n";

else if (x==5){


y3=tan(a*x);

}

else if (x<5) {


y3=pow(a+x,1/3);

}

else if (x>5 and x<8){


y3=tan(fabs(a*x));}


i+=1;

cout << "Функція y3 = " << y3 << endl;

}

return 0;

}

Но программа не функционирует так как нужно, не подскажете в чем проблема?
Забыл упомянуть что в задании сказано обьязательно с циклом while использовать