У меня проблема, не могу найти решение.
Выдает ту же ошибку:
Pow: неоднозначный вызов перегруженной функции
#include <stdio.h>
#include <math.h>
int main()
{
int a, i, n, product, result=1;
printf("enter a number\n");
scanf("%d", &a);
printf("enter n number\n");
scanf("%d", &n);
for(i = 1; i < n; i++) {
product = pow(a, i);
result *= product;
}
printf("the result is %d", result);
return 0;
}
result=1
, иначе он будет использовать значение мусора - person Punit Vara   schedule 20.12.2015int
в качестве первого аргументаpow()
в C++ приводит к двусмысленности, потому чтоint
необходимо преобразовать, и его можно преобразовать вfloat
,double
илиlong double
с одинаковой легкостью, приводит к двусмысленности. Тот факт, что люди в конечном итоге используют компилятор C++ для компиляции кода C, является отдельным источником раздражения — я предполагаю, что они сбиты с толку используемой IDE. - person Jonathan Leffler   schedule 20.12.2015<tgmath.h>
с действиями, очень похожими на перегрузки C++. Я согласен, что это, безусловно, OP с использованием компилятора C ++ для кода C. Пользователь, имеющий проблемы сpow()
и фильтрующий поC
, не найдет этот дубликат, поскольку это другой язык. Решения-кандидаты в C отличаются от C++, и поэтому я по-прежнему утверждаю, что заявленный обман является плохим кандидатом. - person chux - Reinstate Monica   schedule 20.12.2015#include <tgmath.h>
, я мог бы проявить больше сочувствия. Как бы то ни было, компиляция кода с помощью компилятора C++ означает, что вы получаете сообщения об ошибках C++ для проблем, которые появляются только при использовании компилятора C++ вместо компилятора C, независимо от того, почему вы используете неправильный компилятор. - person Jonathan Leffler   schedule 20.12.2015<math.h>
, и поэтому я не согласен с тем, что обман прекрасно объясняет это.. Возможно, вы подумали, что мой голос был за очередной дурак? - person chux - Reinstate Monica   schedule 20.12.2015.h, scanf(), printf()
) по сравнению с C-ish C++. Проблема OP, вероятно, заключалась не в использовании компилятора C. 2) C есть что-то очень похожее на перегрузку. Это возможно с_Generic
и намеренно доступно с<tgmath.h>
, что заставит исходный код Cpow(float)
иpow(double)
вызывать разные функции. Поскольку сообщение OP относится кpow()
, это соображение актуально. - person chux - Reinstate Monica   schedule 20.12.2015