Недопустимый аргумент типа унарного '*' (есть int?

Я читал другие вопросы, как этот, но ни один из них не работал... Мой код:

int flowRateFormula(int pipeDiameter,double velocity)
{
int integer3;

integer3=PI*(1/4)*(pow(pipeDiameter,2))*velocity;

return integer3;

 }

И ошибка:

flowRate.c: In function ‘flowRateFormula’:
flowRate.c:38:13: error: invalid type argument of unary ‘*’ (have ‘int’)

Что делать? Кстати, PI определен

3 ответа

Решение

Скорее всего, у вас есть линия

#define PI

где-то, что делает ваш код эквивалентным:

integer3=*(1/4)*....

и это не в состоянии скомпилировать. Замените его, например, на

#define PI 3.1416

Обратите внимание, что (1/4) будет оценено как 0, потому что целочисленное деление возвращает целое число. вы, вероятно, хотите использовать 1.0/4.0,

Определен ли PI? Я держу пари, что это пусто. Кстати, (1/4) даст вам ноль, делая все ваше выражение ноль.

Сначала нужно объявить значение для PI.

Другие вопросы по тегам