Cześć, mam problem z napisaniem funkcji zamieniającej liczbę z systemu 10 na 16. Program kompiluje bez błedów jednak wychodzą dziwne liczby i nie jestem w stanie pojąc gdzie robię błąd
W przykładzie jest wpisana liczba 26 co równa się 1A, a mi wychodzi A1117. kod: https://rextester.com/JFB28305
#include <stdio.h>
#include <stdlib.h>
#define INT_SIZE 32
int dec2hex(int dec, char hex[INT_SIZE]){
int i=0;
while(dec > 0)
{
hex[i]=dec%16;
switch(hex[i])
{
case 10:
hex[i]="A";
break;
case 11:
hex[i]="B";
break;
case 12:
hex[i]="C";
break;
case 13:
hex[i]="D";
break;
case 14:
hex[i]="E";
break;
case 15:
hex[i]="F";
break;
default:
break;
}
dec /= 16;
i++;
}
return i;
}
int main()
{
int j,dec=26;
char hex[INT_SIZE];
int i = dec2hex(dec,hex);
for(j=i-1;j>=0;j--);
{
printf("%d\n\n",hex[j]);
}
return 0;
}