Zamiana liczby dziesietnej na szesnastkowa. Cos zle w kodzie ?

Odpowiedz Nowy wątek
2018-11-20 22:39
0

Witam, nie moge dojść co tutaj jest źle? ktoś pomoże ?

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

int main()
{
    int a=0;
    printf("Podaj liczbe ktora ma byc przeliczona na system szesnastkowy nie wieksza niz 65535: \n");
    scanf("%d",&a);
    char reszta,litery[7]="ABCDEFG";
    int c=0;
    char b[100];
    do
    {
    reszta=a%16;
    if(reszta<10)
    {
     b[c]=reszta;
    }
     if(reszta>9)
     {
      int d=reszta-10;
      b[c]=litery[d];
     }
    a=a/16;
    c++;

    }while (a!=0);
    for(int i=c-1;i>=0;i--)
    {
     printf("%s", b[i]);
    }

    return 0;
}

Pozostało 580 znaków

2018-11-20 23:20
2018-11-20 23:32
0

a tak żeby taki początkujący gościu jak ja zrozumiał ? :D

Wpadłem na taki pomysł ale tez nie działa

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

int main()
{
    int a=0;
    printf("Podaj liczbe ktora ma byc przeliczona na system szesnastkowy nie wieksza niz 65535: \n");
    scanf("%d",&a);
    char litery[16]="123456789ABCDEFG";
    int reszta;
    int c=0;
    char b[100];
    do
    {
    b[c]=litery[reszta];
    a=a/16;
    c++;

    }while (a!=0);

    for(int i=c-1;i>=0;i--)
    {
     printf("%s", b[i]);
    }

    return 0;
}
edytowany 1x, ostatnio: furious programming, 2018-11-21 00:00

Pozostało 580 znaków

2018-11-21 00:36
0

A może od zera do F, jak to w systemie szesnastkowym:) i o modulo Zapomniałeś

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

int main()
{

    int a=0;
    printf("Podaj liczbe ktora ma byc przeliczona na system szesnastkowy nie wieksza niz 65535: \n");
    scanf("%d",&a);
    char litery[16]="0123456789ABCDEF";
    int reszta;
    int c=0;
    char b[100];
    do
    {
    reszta = a % 16;
    b[c]=reszta;
    a=a/16;
    c++;

    }
    while (a!=0);

    for(int i=c-1;i>=0;i--)
    {
     printf("%c", litery[b[i]]);
    }

    return 0;
}

Pozostało 580 znaków

2018-11-21 01:26
0

Wydaje mi się że juz sobie z tym poradziłem sam, jeśli ktoś by mógł jeszcze rzucić okiem czy dobrze byłbym wdzięczny.

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

int main()
{
    int a=0;
    printf("Podaj liczbe ktora ma byc przeliczona na system szesnastkowy nie wieksza niz 65535: \n");
    scanf("%d",&a);
    char litery[16]="0123456789ABCDEFG";
    char b[100];
    int c=0;
    do
     {
    int reszta=a%16;
    b[c]=litery[reszta];
    a=a/16;
    c++;

    }while (a!=0);

    for(int i=c-1;i>=0;i--)
    {
     printf("%c", b[i]);
    }
    return 0;
}

Pozostało 580 znaków

2018-11-21 02:11
Pabloo111 napisał(a):
char litery[16]="0123456789ABCDEFG";

Wywal to G – przecież ta litera nie istnieje w systemie szesnastkowym. :D


Pozostało 580 znaków

2018-11-21 09:55
0

Ok już ogarnąłem zakres, dzięki wszystkim :d

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0