• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

iceunico

Erro no printf

7 mensagens neste tópico

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

int main(int argc, char *argv[])
{
    float salario,taxa;
    char estado_civil;
    
    printf("Qual o estado civil:");
    scanf("%c",&estado_civil);
    printf("\nQual o salario:");
    scanf("%f",&salario);
    if (estado_civil=='c' || estado_civil=='C')
    taxa=0.5;
    printf("\nSalario: %.2f\nImposto: %.2f\nSalario Final: %.2f",&salario, &salario*taxa, &salario-salario*taxa);
    if(estado_civil=='s' || estado_civil=='S')
    taxa=2;
    printf("\nSalario: %.2f\nImposto: %.2f\nSalario Final: %.2f",&salario, &salario*taxa, &salario-salario*taxa);
    else
    printf("\nEstado Civil Incorrecto!\n");
  system("PAUSE");	
  return 0;
}

Enfim... Não estou a perceber onde está o erro... Dá-me erro a compilar!

Ajuda? Thanks!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E qual é o erro que obténs?

De qualquer forma, os '&' nos printfs estão a mais. Só precisas deles nos scanfs.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado Rui pela resposta!

Já reparei no erro, era mesmo esse dos ''&" ...

Mas agora dá-me outro erro no "else"!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

int main(int argc, char *argv[])
{
    float salario,taxa;
    char estado_civil;
    
    printf("Qual o estado civil:");
    scanf("%c",&estado_civil);
    printf("\nQual o salario:");
    scanf("%f",&salario);
    if (estado_civil=='c' || estado_civil=='C')
    {taxa=0.5;
    printf("\nSalario: %.2f\nImposto: %.2f\nSalario Final: %.2f",salario, salario*taxa, salario-salario*taxa);
    }if(estado_civil=='s' || estado_civil=='S')
    {taxa=2;
    printf("\nSalario: %.2f\nImposto: %.2f\nSalario Final: %.2f",salario, salario*taxa, salario-salario*taxa);
    }else
    printf("\nEstado Civil Incorrecto!\n");
  system("PAUSE");	
  return 0;
}

Agora o problema é que quando escolho "C" ou "c" aparece o "Estado Civil Incorrecto!" no fim...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta:

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

int main(int argc, char *argv[])
{
    float salario,taxa;
    char estado_civil;
   
    printf("Qual o estado civil:");
    scanf("%c",&estado_civil);
    printf("\nQual o salario:");
    scanf("%f",&salario);
    if (estado_civil=='c' || estado_civil=='C')
    {taxa=0.5;
    printf("\nSalario: %.2f\nImposto: %.2f\nSalario Final: %.2f",salario, salario*taxa, salario-salario*taxa);
    }else if(estado_civil=='s' || estado_civil=='S')
    {taxa=2;
    printf("\nSalario: %.2f\nImposto: %.2f\nSalario Final: %.2f",salario, salario*taxa, salario-salario*taxa);
    }else
    printf("\nEstado Civil Incorrecto!\n");
  system("PAUSE");     
  return 0;
}

Se der é porque não tinhas o else associado ao 1º if

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora