Задать вопрос
caramel14
@caramel14
Всякое разное этакое чажу

Простенькая программа на С выдаёт ошибку. Как исправить?

#include math.h
#include stdio.h
#include stdlib.h
# define M_PI		3.14159265358979323846	/* pi */
main()
{
    double a,
            b,
            x,
            z;
    system("cls");

    printf("Введите значение параметра a: ");
    scanf("%f",&a);
    printf("Введите значение параметра b: ");
    scanf("%f",&b);
    printf("Введите значение аргумента x: ");
    scanf("%f",&x);
    if (x<=a) (4.1 + (7*pow(x,2)) + sin((8.2 * x) + (M_PI/6)));
    else if (a>x>b) (sqrt(pow(cos,2)*pow(atan,2)*pow(x,2)+pow(exp,(3*x+10)))));
    else if ((x>=b) (log(asin(x)+acos(x)+pow(x,3.2)));
    printf("Значение функции z = %e\n",z);
    return 0;
}

Компилятор пишет "passing 'double (double)' to parameter of incompatible type 'double'"
  • Вопрос задан
  • 236 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@TheCalligrapher
Здесь вся программа набита ошибками под самую завязку.

  • Куда пропал тип возвращаемого значения у функции main()?
  • Почему в scanf("%f",&b) использован формат %f? Какой формат следует использовать для ввода значений типа double?
  • Что по-вашему проверяет if (a>x>b)?
  • Что это за чушь: pow(cos,2)? Что там делает этот cos?
  • Что случилось с балансом скобок в if ((x>=b)?
  • Что это за выражения под каждым if, которые как будто что-то вычисляют, но никуда не сохраняют результаты своих вычислений? То есть они фактически ничего не делают. Зачем они такие нужны?
  • printf в конце печатает значение переменной z. Но вы не назначили этой переменной никакого значения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Подключение заголовочных файлов, должно быть так:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

То что происходит в ветвлении, вынесите в функцию, добавьте пробелы для читаемости и не забудьте вернуть значение. В вашем ветвлении если условие верно, то кроме вычисления ничего не происходит.

z это переменная, а не функция, также не забывайте что тип double и float - разные типы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы