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

Problema pra rodar o programa

Oi, boa noite.

Estou fazendo o Curso C I: Introdução à Linguagem das Linguagens.

E na Aula 1 ( Começando com Variáveis), tem um desafio: "Escreva um programa que peça para o usuário digitar duas variáveis inteiras (x e y) e imprima o resultado da multiplicação entre essas duas variáveis."

Eu fiz o programa, e ele ficou assim:

include

int main(){

int x; int y;

printf("digite dois numeros que voce queira multiplicar\n");

scanf("%d\n", &x);

scanf("%d\n", &y);

int resultado = x * y;

printf("O resultado da multiplicacao eh %d", resultado);

}

Quando eu compilo e rodo o programa, eu digito o primeiro número, dou enter, digito o segundo número, dou enter, e não aparece o resultado. Só aparece o resultado quando depois dos dois números digitados eu digito uma letra e dou enter.

Quero saber o que está acontecendo e como resolver.

Se alguém estiver disposto a ajudar, a gente poderia conversar por telefone ou skype e você mexer no meu notebook pelo TeamViewer (programa de acesso remoto).

4 respostas

Boa noite Alberto, tudo bem?

Deve ser algum problema de buffer na leitura dos dados ao usar o scanf.

Tenta, depois de cada scanf, usar a funcao getchar();

Avisa aí se der certo.

Abraço.

boa noite , acho que pode ser porque você usou um '\n' no scanf, tenta retirar e compilar de novo. avisa se deu certo , espero ter ajudado.

solução!

O problema está no \n no scanf, não é necessário para pular a linha, aqui esta o código correto e com algumas "melhorias" para facilitar entendimento.

int main(){

int x, y,resultado;

printf("digite dois numeros que voce queira multiplicar\n");

scanf("%d", &x);

scanf("%d", &y);

resultado = x * y;

printf("O resultado da multiplicacao eh %d", resultado);

}

O problema era o \n no scanf mesmo, tirei e rodou legal.

Obrigado pela ajuda!