Error C2668: 'pow': ambiguous call to overloaded function - C (СИ)
Формулировка задачи:
Всем доброй ночи! Проблемка с функцией pow. Ошибка в строке 83:
error C2668: 'pow' : ambiguous call to overloaded function
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <math.h>
int prostoe_chislo();
int prostoe_chislo()
{
int a;
static time_t tval = time(0);
tval += 10;
srand(tval);
while(1)
{ int z=0,kol=0;
a=1+rand()%100;
for(int i=2;i<a;i++)
{
if(a%i==1)
continue;
if(a%i==0)
{ z=1;
break;}
}
if(z==0)
break;
}
return a;
}
int _tmain(int argc, _TCHAR* argv[])
{
int p,q,N,e,f,mas[100],kol=0,i,j;
char alf[] = {'a','b','c','d','e','f','g','h','i','j',
'k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'},s[100];
float y[100];
p=prostoe_chislo();
printf("prostoe chislo p:%d\n",p);
q=prostoe_chislo();
printf("prostoe chislo q:%d\n",q);
N=p*q;
printf("proizvedenie N:%d\n",N);
f=(p-1)*(q-1);
printf("funczija eylera f(p,q):%d\n",f);
while(1)
{
int k,flag;
srand(time(NULL));
e=1+rand()%100;
if(e<=f)
k=e;
else
k=f;
for(int i=2;i<=k;i++)
{
flag=0;
if(e%i==0&&f%i==0)
{ flag=1;
break;}
}
if(flag==0)
break;
}
printf("vzaimo prostoe chislo e:%d\n",e);
float d=((float)f+1)/e;
printf("chislo d:%f\n",d);
printf("otkritiy klych [%d,%d]\n",e,N);
printf("zakritiy klych [%f,%d]\n",d,N);
printf("vvedite stroku: ");
scanf("%s",s);
for(i=0;s[i]!='\0';i++)
{ for(j=0;j<26;j++)
{ if(s[i]==alf[j])
{ mas[kol]=j+1;
kol++;}
}
}
for(i=0;i<kol;i++)
printf("%c - %d\n",s[i],mas[i]);
printf("zashifrovanoe soobschenie:\n");
for(i=0;i<kol;i++)
{ y[i]=(pow(mas[i],e))%N;
printf("%f\n",y[i]);
}
return 0;
}Решение задачи: «Error C2668: 'pow': ambiguous call to overloaded function»
textual
Листинг программы
error C2668: 'pow' : ambiguous call to overloaded function