Ошибка при компиляции. Функции С++

Ошибка компиляции - неинициализированная локальная переменная (a,b,x,y...). Почему функции не связаны, если использован файл заголовков?

first.cpp

    #include "func.h"
    #include <cmath>
    
    float func(float a, float b)
    {
        float y, x, k;
        const float pi = 3.14;
        int Z;
        a = (pow(k, 1 / 4)) / x + (exp(y - 1)) / abs(5 * k + pow(x, 3)) - cos(Z * pi / 180) + tan(15 * 180 / pi);
        b = (10 + cbrt(pow(y, 5) + 2 * x)) + 4 / pow((3 * y - x), 3) + (pow(abs(y - x), 3)) / 3;
        return a;
        return b;

}

second cpp

#include <iostream>
#include "func.h"
#include <windows.h>
using namespace std;

int main()
{
    float a, b, x, y;
    int Z;
    cout << "Enter x: "; cin >> x;
    cout << "Enter y: "; cin >> y;
    cout << "Enter Z(integer): "; cin >> Z;
    a = func(a, b);
    b = func(a, b);
    cout << "A: " << a << endl;
    cout << "B: " << b;
}

h file

#pragma once
float func(float, float);

Ответы (1 шт):

Автор решения: Zhihar

конечно неинициализированная

у вас код

float a;
a = func(a, b);

и что должно передаваться в качестве параметров функции?

и вот это так не работает:

float func(float a, float b)
{
    return a;
    return b;
}

после первого return произойдет выход из функции и возврат управления основному коду

если уж вы хотите внутри функции менять внешние переменные - используйте ссылки

void func(float& a, float& b)
{
}

кстати в вашей функции func присутствует также ЛОКАЛЬНАЯ переменные y, z, k, Z, которые объявлены, но не проинициализированы.

→ Ссылка