[LIMBAJUL C]
Care este greseala in codul urmator?
Dandu-se un vector ce reprezinta numerele naturale de la 0 la 255 (nu se citeste de la tastatura sau din fisier, el asa este initializat), se cere sa se afiseze pe ecran, pentru fiecare element al vectorului, valoarea sa in sistemul binar, dar obligatoriu in 8 cifre (ex: numarul 1 va fi reprezentat 00000001, numarul 2 va fi reprezentat 00000010, ....... numarul 255 va fi reprezentat 11111111).
Codul meu incepe sa afiseze corect pentru primele valori, dar pe ultimele le afiseaza gresit (pe 255 il afiseaza ca fiind 01111111 in loc de 11111111, pe 254 il afiseaza ca fiind 011111110 in loc de 11111110, si tot asa) astfel incat nu imi pot da seama de la ce numar sunt gresite, si nici care este greseala.
Codul este acesta:
#include
#include
void compute(unsigned int number) {
unsigned int i;
unsigned int aux[8];
for (i = 0; i < 8; i++) {
aux[i] = 0;
}
for (i = 7; i > 0; i--) {
aux[i] = number % 2;
number = number / 2;
}
for (i = 0; i < 8; i++) {
printf("%u", aux[i]);
}
printf("\n");
}
int main(int argc, char** argv) {
unsigned initialVector[256];
unsigned int i;
for (i = 0; i < 256; i++) {
initialVector[i] = i;
}
for (i = 0; i < 256; i++) {
compute(initialVector[i]);
}
return (EXIT_SUCCESS);
}
Anexe:
artur99:
=))
Răspunsuri la întrebare
Răspuns de
2
Aici, ar fi venit de la poziția 7 la poziția 0:
for (i = 7; i > 0; i--)
Dar la tine se face de la 7 la 1 :)
Daaar, oricum cu 0 nu ar fi mers din cauza instrucțiunii 2 din for, pentru că ar fi fost 0/2, care ar fi fost infinit și nu mai returna nimic :D Deci, ce trebuie să faci e să adaugi pe linia 14 codul ăsta:
aux[0] = number%2;
for (i = 7; i > 0; i--)
Dar la tine se face de la 7 la 1 :)
Daaar, oricum cu 0 nu ar fi mers din cauza instrucțiunii 2 din for, pentru că ar fi fost 0/2, care ar fi fost infinit și nu mai returna nimic :D Deci, ce trebuie să faci e să adaugi pe linia 14 codul ăsta:
aux[0] = number%2;
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă