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

Imprimindo um resultado estranho

Olá!

Estava fazendo o código para imprimir o resultado da multiplicação de dois números onde o usuário irá digitar, porém o resultado da multiplicação é um tanto estranho. Segue o código:

#include <stdio.h> 

int main () {

    int x;
    int y;
    int resultado = x * y;

    printf("Digite o primeiro numero \n");

    scanf("%d", &x);

    printf("Digite o segundo numero \n");

    scanf("%d", &y);


    printf("O resultado é %d", &resultado);
}

Digitando os dois número ele resulta em:

O resultado ├® 6356772

Deveria aparecer "O resultado é 4".

6 respostas

Alterei um pouco o código e ficou mais cabeludo ainda

Parte alterada:

    printf("A multiplicação de %d e %d, resulta em %d", &x, &y, &resultado);

O que é imprimido na tela:

A multiplicação de 6356780 e 6356776, resulta em 6356772

O problema me parece que vc ta fazendo a multiplicacao antes de ler os valores de x e y. Entao as variaveis foram declaradas mas seus valores reais nao estão la ainda (e no C isso significa que x e y tem um lixo qualquer la dentro).

Não @Sérgio Lopes.

Fiz a alteração antes do teu comentário e dá a mesma coisa. no caso o código está assim:

#include <stdio.h> 

int main () {

    int x;
    int y;

    printf("Digite o primeiro numero \n");

    scanf("%d", &x);

    printf("Digite o segundo numero \n");

    scanf("%d", &y);

    int resultado = x * y;
    printf("A multiplicação de %d e %d, resulta em %d", &x, &y, &resultado);
}
solução!

Putz, tinha mais um problema ai que nao vi antes. Na hora de imprimir a gente passa direto a variavel, nao o ponteiro dela.

    printf("A multiplicação de %d e %d, resulta em %d", x, y, resultado);

No scanf sim, o ponteiro com & indicando que vamos jogar o conteudo dentro daquele endereco. Mas no printf, nao queremos mostrar o endereco mas sim o conteudo da variavel.

(e alem disso tinha o bug do resultado que estava sendo calculado antes da definicao de x e y, que eu comentei antes)

Deu certo!

Mas e a acentuação? Ainda tá imprimindo alguns caracteres estranhos ao invés dos acentos.

Tem solução?

Obrigado!

Ate tem, mas é mais complicado. Envolve encodings (do editor, do SO, do terminal). Acho que nao é um bom momento pra se preocupar com isso :)