Aktív témák

  • Steve-S

    tag

    Ha ezt megmondja nekem valaki hogy miért nem működik normálisan ez a programom, akkor megközönném! Fordításnál semmi hiba nincs. Átnéztem már 100x az egészet de nem tudom mi a hiba. A feladat hogy bekérek egy egész számot, és átváltja a megadott számrendszerbe (2-9). A feladatot ily módon kell megoldani ahogy megcsináltam, tehát ne írjátok át ha lehet, csak nem tudom hogy miért nem működik megfelelően. Eredménynek csak hülye összevissza karaketerket ad ki.

    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>

    char *valto(unsigned int szam, unsigned int szr)
    {
    char *eredmeny;
    int n=floor(log(szam)/log(szr)+1);
    int i=0;
    eredmeny=(char *)malloc((n+1)*sizeof(char));

    while(szam>0)
    {
    eredmeny[n-i-1]=szam%szr;
    szam/=szr;
    i++;
    }

    eredmeny[n]=0;
    return eredmeny;
    }

    int main(void)
    {
    unsigned int a,b;
    char *kesz=NULL;

    printf("Adj meg egy egesz szamot: ");
    scanf("%d",&a);
    printf("Adj meg egy szamrendszert (2-9): ");
    scanf("%d",&b);

    if(b<2 || b>9)
    {
    printf("\nNem jo szamrendszert adtal meg!\n");
    exit(-1);
    }

    kesz=valto(a,b);

    if(kesz) puts(kesz);
    if(kesz) free(kesz);

    return 0;
    }

Aktív témák