Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

estou tendo um problema com um codigo

Estou tendo problemas para achar os erros desse codigo alguem consegue me ajudar?

#include <stdio.h> void calculoResto( ) { int resto; resto = num % 2; return resto; } int calculoQuociente(int num, int dividendo) { num = num / 2; } int main( ) { int dividendo, resto, indice; int binario[8] = {0, 0, 0, 0, 0, 0, 0, 0}; printf("Entre com um número inteiro entre 0 e 255: "); scanf("%d",&dividendo); indice = 0; while ( dividendo < 0 ) { binario[indice] = calculoResto(dividendo); dividendo = calculoQuociente(dividendo); indice = indice + 1; } for ( indice = 7; indice > -1; indice-- ) { printf("%d ",binario[indice]); } return 0; }

2 respostas
solução!

Olá Leonardo!

Tinha alguns erros no seu código, então vamos por partes.

Na função "calculoResto()" você a declarou como VOID e colocou um return resto; no final. Funções VOID não retornam nada, deve mudar para int, pois você está retornando um valor inteiro. E você não colocou parametros dentro da função e tem um num não declarado, então ele deve vir na declaração da função. Ficará assim:

**int** calculoResto (**int num**){
    int resto;
    resto = num % 2;
    return resto;
}

Na função "calculoQuociente(int num, int dividendo)", você declarou dois parametros para essa função e só usou um. Então tirei o segundo.

int calculoQuociente (int num){
    num = num / 2;
    return num;
}

Na função "main()", você não usou a variável resto, então tirei. A lógica da verificação do WHILE estava errada, o programa nunca entrava no while porque o dividendo nunca era menor que 0, o certo era while(dividendo > 0). Com isso, o programa inteiro fica:

#include <stdio.h>

int calculoResto (int num){
    int resto;
    resto = num % 2;
    return resto;
}
int calculoQuociente (int num){
    num = num / 2;
    return num;
}
int main (){
    int dividendo, indice;
    int binario[8] = {0, 0, 0, 0, 0, 0, 0, 0};
    printf ("Entre com um número inteiro entre 0 e 255: ");
    scanf ("%d", &dividendo);
    indice = 0;
    while (dividendo > 0) {
        binario [indice] = calculoResto (dividendo);
        dividendo = calculoQuociente (dividendo);
        indice ++;
    }
    for (indice = 7; indice > -1; indice--){
        printf("%d", binario[indice]);
    }
    return 0;
}

Espero ter ajudado! E bons estudos!

muito obrigado ajudou bastante!!