Ошибка "expected primary-expression before';' token"
#include <stdio.h>
#include <cmath>
#define pow(t,r)
using namespace std;
int f1(float y, float x,float t, float r, float pi)
{
pi = 3.1415;
t=(-x);
r=(2);
cout << "Enter 'x':" << endl;
cin >> x;
if(x <= 0){
y = pow(t,r);
}
else if((x<=pi) <= 0){
y = sin(x);
}
else if(x > pi / 2){
y = 1 + x - pi / 2;
}
cout << "y = " << y << endl;
return (1) ;
}
int f2(float y, float x)
{
cout << "Enter 'x':" << endl;
cin >> x;
if(x < -1){
y = -5;
}
else if(x < 0){
y = 0;
}
else if(x < 1){
y = x * 5;
}
else y = 5;
cout << "y = " << y << endl;
return (2) ;
}
int f3(double &x1,double &x2){
int d=-1;
if(x1<x2) {
double d;
d=x1; x1=x2; x2=d;
d=1;
}
return d>0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Забавно. Работаете с потоками типа cout, а
#include <iostream>
не написали.
Ладно, к делу. Вы объявили
#define pow(t,r)
т.е. сказали препроцессору — если где встретишь в тексте pow(..,..) — выбрось его, замени на пустое место. И препроцессор честно превратил
y = pow(t,r);
в
y = ;
Ну и как компилятору это скомпилировать? Вот он и пожаловался, как смог...
P.S. Еще очень интересно, что вы хотели сказать этим выражением:
if ((x<=pi) <= 0)
А в f3 все, что вы делаете с d внутри if, вы делаете с локальной переменной, так что оптимизированный код вашей функции имеет вид
int f3(double &x1,double &x2){
return false;
}
Ну, о точности
pi = 3.1415;
просто молчу.