Zamiana liczby dziesietnej na szesnastkowa. Cos zle w kodzie ?

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;
}
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;
}

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;
}
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;
}


1
Pabloo111 napisał(a):
char litery[16]="0123456789ABCDEFG";

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

0

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

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