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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5