Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Concatenação do scanf com o \n

Olha parte da minha calculadora:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{



    int n1, n2, operacao;
    double resultado;


    printf ("Escreva o primeiro número\n");
    scanf ("%d",&n1);

    printf ("\n");
    printf ("Escreva o segundo número\n");
    scanf ("%d",&n2);
    printf ("\n");

    printf ("1 para soma:\n");
    printf ("2 para subtração:\n");
    printf ("3 para multiplicação:\n");
    printf ("4 para divisão:\n");
    scanf ("%d",&operacao);
    printf ("\n");

    if (operacao == 1) {

    resultado = n1 + n2;

    printf ("%.2f", resultado);

    }

Como dá pra notar eu usei o "scanf ("%d",&n1);" pra depois usar o printf ("\n");, pois se concatenasse os dois em "scanf("%d\n", &n1);" bugava a execução, embora compilasse.

Eu cometo um erro nessa concatenação ou é uma limitação da linguagem?

1 resposta
solução!

Olá Lucas, o scanf é utilizado para atribuir os valores que estão sendo lido, no caso pelo teclado, para uma variável e o printf é utilizado para a saída, no caso o monitor. Portanto a formatação da saída só é possível ser feita no printf. O que eu aconselho você fazer para não ter esse printf a mais é colocar ele no próximo printf.

   printf ("Escreva o primeiro número\n");
    scanf ("%d",&n1);

    printf ("\nEscreva o segundo número\n");
    scanf ("%d",&n2);

    printf ("\n1 para soma:\n");
    printf ("2 para subtração:\n");
    printf ("3 para multiplicação:\n");
    printf ("4 para divisão:\n");

A compilação é aceita, pois há algumas formas de formatar essa entrada que é feita, e inicialmente o compilador aceita, porém quando for executar ele apresenta o erro.

Espero ter ajudado, faz muito tempo que não trabalho com C.