Не работает метод hex-dec - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Помогите разобраться с кодом. Компилятор ругается вот таким:
gcc -Wall -o "main" "main.c" (в каталоге: /home/ironhide/books/С/rus/Kernigan_C_programming)
/tmp/cc6h1NYT.o: In function `htoi':
main.c:(.text+0xee): undefined reference to `pow'
main.c:(.text+0x12f): undefined reference to `pow'
main.c:(.text+0x170): undefined reference to `pow'
main.c:(.text+0x1b1): undefined reference to `pow'
main.c:(.text+0x1f2): undefined reference to `pow'
/tmp/cc6h1NYT.o:main.c:(.text+0x233): more undefined references to `pow' follow
collect2: выполнение ld завершилось с кодом возврата 1
Сборка завершилась с ошибкой.
Код:
#include <stdio.h>
#include <string.h>
#include <math.h>
 
int htoi(const char*);
 
int main(){
 
const char* n="34DF3";
printf("%d", htoi(n));
 
return 0;
}
 
int htoi(const char* hexn){
    
    int hexnCounter=0, hexnLen, n=0;
    typedef enum {false, true} bool; 
    bool prefix;
        
    prefix=(hexn[0]=='0'&&(hexn[1]=='x'||hexn[1]=='X'))?true:false;
    hexnLen=strlen(hexn);
    
    if(prefix){
        hexnCounter+=2;
        hexnLen-=2;
        }
    hexnLen--;
 
for(;hexn[hexnCounter];hexnCounter++,hexnLen--){
        switch(hexn[hexnCounter]){
            case 'a':case 'A':n+=10*pow(16,hexnLen);break;
            case 'b':case 'B':n+=11*pow(16,hexnLen);break;
            case 'c':case 'C':n+=12*pow(16,hexnLen);break;
            case 'd':case 'D':n+=13*pow(16,hexnLen);break;
            case 'e':case 'E':n+=14*pow(16,hexnLen);break;
            case 'f':case 'F':n+=15*pow(16,hexnLen);break;
            default: n+=(hexn[hexnCounter]-'0')*pow(16,hexnLen);break;
            }
    }
    
    return n;
}

Решение задачи: «Не работает метод hex-dec»

textual
Листинг программы
1<<(hexnLen*0x10)

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


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

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

7   голосов , оценка 4.143 из 5
Похожие ответы