Ошибка при компиляции. Функции С++
Ошибка компиляции - неинициализированная локальная переменная (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, которые объявлены, но не проинициализированы.