File: Stare vježbe/vjezbe04/27__pretvorba_baze.c
/* 27__pretvorba_baze.c Koristenje petlji. Naredbe break i continue. ----- Program ucitani broj u bazi 10 ispisuje u zadanoj bazi. */ #include <stdio.h> int main () { int polazni_broj, baza, broj_znamenki, znamenke[8*sizeof(int)]; int temp, i; while (1) { /* ucitavamo broj kojeg treba ispisati u zadanoj bazi */ printf ("Unesite broj (<=0 za kraj): "); scanf ("%d", &polazni_broj); /* prekidamo izvrsavanje petlje ako je ucitani broj <= 0 */ if (polazni_broj <= 0) break; /* ucitavamo bazu */ printf ("Unesite bazu: "); scanf ("%d", &baza ); /* baza mora biti veca od 1! */ if (baza<2) { printf("Baza mora biti veca od 1!\n"); continue; } /* pretvaramo polazni_broj u bazu; zapisujemo znamenku po znamenku u polje znamenke[] */ broj_znamenki=0; temp=polazni_broj; while (temp) { znamenke[broj_znamenki++]=temp%baza; temp/=baza; } printf ("Broj %d u bazi %d: ", polazni_broj, baza ); /* uocimo da je zapis "naopak", tj. u znamenke[0] je zapisana najmanje znacajna znamenka pretvorenog broja, a u znamenke[broj_znamenki-1] najznacajnija. Zbog toga moramo ispisivati clanove polja unatrag */ for (i=broj_znamenki-1; i>=0; i--) znamenke[i] >= 10 ? 'A'+znamenke[i]-10 : '0'+znamenke[i]); } return 0; }
|