E2060 illegal use of floating point - C (СИ)
Формулировка задачи:
Задание:
x=2a+6b
y=sin(a*x)cos(b*x)
z=2x*y-y^2
тип исходных данных:
a- целое
b - действительное
выводимые данные a b x y z
Борланд ругается на строку z=2*x*y-y^2
[C++ Error] Unit1.cpp(13): E2060 illegal use of floating point
менял float на double, но ничего не изменилось
Если удаляю z в целом из программы выдает ошибку
[C++ Error] Unit1.cpp(6): E2040 Declaration terminated incorrectly.
Прошу помочь разобраться
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{ int a;
float b, x, y, z;
clrscr();
printf("Введите a, b :\n");
scanf("%f",&a);
scanf("%f",&b);
x=2*a+6*b;
y=sin(a*x)+cos(b*x);
z=2*x*y-y^2;
printf("\nS = %.2f",a,b,x,y,z);
getch();
return 0;
}Решение задачи: «E2060 illegal use of floating point»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main() {
int a;
float b, x, y, z;
clrscr();
printf("Vvedite a, b :\n");
scanf("%d",&a);
scanf("%f",&b); //!!!
x=2*a+6*b;
y=sin(a*x)+cos(b*x);
z=2*x*y-pow(y,2);
//printf("\na = %4.2f",(float)a);
printf("\na = %4d",a); //!!!
printf("\nb = %4.2f",b); //!!!
printf("\nx = %4.2f",x);
printf("\ny = %4.2f",y);
printf("\nz = %4.2f",z);
getch();
return 0;
}
}
Объяснение кода листинга программы
- Объявлены переменные: a (int), b (float), x (float), y (float), z (float).
- Вводится значение переменной a с помощью функции scanf.
- Вводится значение переменной b с помощью функции scanf.
- Вычисляется значение переменной x по формуле 2a+6b.
- Вычисляется значение переменной y по формуле sin(ax)+cos(bx).
- Вычисляется значение переменной z по формуле 2xy-pow(y,2).
- Выводится значение переменной a с помощью функции printf.
- Выводится значение переменной b с помощью функции printf.
- Выводится значение переменной x с помощью функции printf.
- Выводится значение переменной y с помощью функции printf.
- Выводится значение переменной z с помощью функции printf.
- Вызывается функция getch для приостановки выполнения программы до нажатия клавиши.
- Возвращается 0, что означает успешное выполнение программы. Ошибки:
- На 3-ей строке происходит попытка использования функции scanf для чтения значения переменной b с плавающей точкой, что приводит к ошибке E2060. Это может быть связано с тем, что в используемой компиляции отсутствует поддержка стандарта IEC 6059 (C99), который необходим для работы с числами с плавающей точкой в соответствии со стандартом C.
- На 4-ой строке происходит попытка вывода значения переменной a с помощью функции printf в формате с плавающей точкой, что приводит к ошибке E2060.
- На 5-ой и 6-ой строках происходит попытка вывода значения переменной b и x с помощью функции printf в формате с плавающей точкой, что приводит к ошибке E2060.