2) Faça um programa que implemente uma máquina de calcular simples com operações +, -, *, / e %, através da leitura de dois operandos numéricos e do operador (tipo caracter), no formato: n1,n2 e operacao. A operação de resto somente pode ser efetuada com números   inteiros.   Utilize   as   letras   X   ou   x   para   encerrar   a calculadora. 
  
Então, estou com dificuldade para "entender", sacar a lógica. Comecei meu curso recentemente, se possível alguém poderia apontar o meu erro e tentar explicar? 
  
Meu código-fonte: 
#include <stdio.h>
#include <locale.h>
void main(){    
    char operacao;
    float n1, n2, total;
    int int_n1, int_n2, resto;
    int_n1 = n1;
    int_n2 = n2;
    //Internacionalização
    setlocale(LC_ALL, "Portuguese");
    
           //Começo do laço.
do{
    printf("Informe o tipo de operação: \n");
    scanf(" %c", &operacao);
    
    
         //Interruptor e casos
    switch(operacao){
        case ('+'):
            printf("Informe o primeiro número: \n");
            scanf(" %f", &n1);
            printf("Informe o segundo número: \n");
            scanf(" %f", &n2);
            total = n1 + n2;
            printf("O total da adição é: %2.f \n", total);
            break;
            
        case ('-'):
            printf("Informe o primeiro número: \n");
            scanf("%f", &n1);
            printf("Informe o segundo número: \n");
            scanf("%f", &n2);
            total = n1 - n2;
            printf("O total da subtração é: %2.f \n", total);
            break;
        
        case ('*'):
            printf("Informe o primeiro número: \n");
            scanf("%f", &n1);
            printf("Informe o segundo número: \n");
            scanf("%f", &n2);
            total = n1 * n2;
            printf("O total da multiplicação é: %2.f \n", total);
            break;
            
        case ('/'):
            printf("Informe o primeiro número: \n");
            scanf("%f", &n1);
            printf("Informe o segundo número: \n");
            scanf("%f", &n2);
            total = n1/n2;
            printf("O total da divisão é: %2.f \n", total);
            break;
        
                //Acredito que meu primeiro erro foi aqui. 
                //Quero que ele se transforme em números inteiros para achar o resto...
        case ('%'):
            printf("Informe o primeiro número: \n");
            scanf("%d", &int_n1);
            printf("Informe o segundo número: \n");
            scanf("%d", &int_n2);
            printf("O total do resto é: %2.d \n", total = int_n1 % int_n2);    
            break;
            
            case ('x'):
                printf("Fora do sistema");
            
            default:
                printf("saída do sistema \n");
                break;        
    }
}while(n1 != 'x'); //Fim do laço
// Não sei a onde encaixar isso, se é dentro do laço, ou dentro do switch, ou fora dos dois.   
  
if(n1 == int_n1) && (n2 == int_n2);{
printf("os n são inteiros")
  }
else{
printf("Os n tem casas decimais");
  }    
            
}
Grato desde já!