Informática, perguntado por Bigudamanoel, 10 meses atrás

Olá estou fazendo um exercício em Dev-C++ que possui o seguinte contexto:
Execício- Uma pousada cobra R$ 150,00 por diária e mais uma taxa adicional de serviços. Se a diária for menor que 5 a taxa é de R$ 20,00. Se o número de diárias for igual a 5 a taxa é de R$ 14,00 e se o número for maior que 5 a taxa é de R$ 12,00. Se o cliente da pagar em dinheiro, a pousada oferece um desconto de 5% nas taxas de serviço e 10% no valor da diária. Faça um programa em C que leia o nome do hóspede, número de diárias, a forma de pagamento e imprima o valor (sem o desconto) e o valor final a pagar (caso haja o desconto).


O anexo é o programa q eu fiz, porém não "funciona", para o exercício. Espero
q alguém me ajuda

Anexos:

Soluções para a tarefa

Respondido por medicisolucoes
1

Resposta:

scanf("%s", &nome)

Explicação:

scanf("%c", &nome) que voce usou recebe apenas 1 caracter, e por isso nao esta funcionando. substitua por s para pegar o nome da pessoa e funcionará

#include <stdio.h>

int main(){

char nome;

int dias=0;

int diaria=0;

int valorcomadicional=0;

int valorcomtaxa=0;

int FormaDePag=0;

int taxa=0;

int totalsemdes=0;

int totalcomdes=0;

float TAxa = 0.05;

float Taxa = 0.1;

 

//printf("Digite o nome do cliente:%c");  // Escrever nome do cliente

//scanf("%s", &nome);  //Lê nome do cliente

   //printf("\nQuantos dias passaram na pousada:");  //Escrever dias nas pousadas

   //scanf("%d", &dias);  //Lê dias  

   dias=6;

diaria = dias*150; //Diario

printf ("\ndiaria %i", diaria);

   printf("Qual sera a forma de pagamento\n");  

   printf("Digite 1 para cartao e 2 para dinheiro\n:");  //Escrever a forma de pagamento

   scanf("%d", &FormaDePag);  //Lê a forma de pagamento

   

   

   

if (dias < 5){

    printf("A taxa adicional sera de 20R$\n");  //Se o adicional for de 20

    valorcomadicional = diaria+(dias*20);

    taxa = 20;

}else if(dias == 5){

    printf("A taxa adicional sera de 14R$\n");  //Se o adicional for de 14

    valorcomadicional = diaria+(dias*14);

    taxa = 14;

}else if(dias > 5){

 printf("A taxa adicional sera de 12R$\n");  //Se o adicional for de 12

 valorcomadicional = diaria+(dias*12);

 taxa = 12;

}

 

if(FormaDePag == 2 ){  //Dinheiro

printf("Havera um desconto de 10 porcento na diaria e 5 na taxa\n");

valorcomtaxa = (diaria/Taxa)+(taxa/TAxa);  //Os descontos  

}else if(FormaDePag == 1 ){  //Cartão

printf("Nao havera desconto\n");

}

printf("\nvalorcomadicional %i", valorcomadicional);

printf("\nvalorcomtaxa %i", valorcomtaxa);

totalsemdes = valorcomadicional;

totalcomdes = valorcomtaxa;

 

printf("O valor, sem o desconto, e:%d\n", totalsemdes);

printf("O valor, com o descont, e:%f,", totalcomdes);

return 0;

}


Bigudamanoel: o real problema não é esse. É que o programa não executa corretamente os if de "FormaDePag"
Bigudamanoel: mas obrigado pela resposta, não percebe
medicisolucoes: vou verificar e ja te falo. perai
medicisolucoes: coloque == e nao = nos ifs
medicisolucoes: vou refazer aqui e te mando
Bigudamanoel: vlw
Bigudamanoel: Obrigado, funcionou
Perguntas interessantes