Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
rs40

Ajuda - Iniciante

Recommended Posts

Boa dia,

Alguém poderia me ajudar na resulação deste algoritmo feito em C

O algoritmo pede o seguinte:

A TelSort deseja fazer as contas telefônicas mensais de seus assinantes através do computador. A cobrança de seus serviços é feita obedecendo o seguinte critério:

Tarifa básica

Telefone residencial - R$ 1.20

Telefone comercial - R$ 1.30

Serviço local

R$ 0.45 por pulso excedente (acima de 90 pulsos)

Serviço de interurbano

Tarifas variáveis mais 30% sobre estas tarifas para o Fundo Nacional de

Telecomunicações (FNT)

Serviço despertador

R$ 1,30 por serviço prestado

Telegrama fonado

Custo da ECT mais r$ 4,20 por telegrama

a) Leia um número indeterminado de telefones contendo as seguintes informações sendo que, o último telefone, que não entrará nos cálculos, contém o número do telefone igual a zero.

- nº do telefone;

- tipo do telefone (1 se for residencial e 2 se comercial);

- nº de pulsos registrados p/chamadas locais;

- total de interurbanos e as suas tarifas;

- nº de serviços de despertador prestados;

- nº de telegramas passados;

Escreva um programa em C que com os dados acima:

Calcule e imprima:

1 – para cada assinante, o número de seu telefone e o valor de sua conta mensal;

2 – o valor da maior conta e o número do telefone do assinante que a pagou (suponha que não haja mais de um assinante com o mesmo valor de conta a pagar);

3 – O total arrecadado pela TELEMIG no mês.

4 – Total de Telegramas

5 - Total de Interurbanos e o seu valor

6- Valor total arrecadado pela ECT

7 - Total de telefones Residências e o seu valor

8 - Total de telefones Comerciais e o seu valor

9 - Total de valores arrecadados pela FNT

Consegui fazer o seguinte:

#include <stdio.h> #include <stdlib.h> #include <conio.h>
main() {
float cod_cliente, codigo, tipo_telefone, pulsos, despertador, usuarios;float total, maior_valor, media, pulsos_excedentes;char telefone;
cod_cliente=1;
while (cod_cliente!=0) {
   printf("Digite o código do cliente: ");   scanf("%f",&cod_cliente);
       if (cod_cliente!=0) {	   printf("Digite (1) para residentical ou (2) para comercial.");	   scanf("%f",&tipo_telefone);	   printf("Digite a quantidade de pulsos consumida: ");	   scanf("%f",&pulsos);	   printf("Digite o número de vezes que o cliente solicitou o serviço de despertador: ");	   scanf("%f",&despertador); }
           if (tipo_telefone==1) {	       tipo_telefone=20;	       printf("\nresidencial\n");	       //telefone = " residencial";            }	       else	       tipo_telefone=60;	       printf("\ncomercial\n");
         	if (pulsos>100) {	       pulsos_excedentes=(pulsos-100)*0.09; }
total=tipo_telefone+pulsos_excedentes+(despertador*5);media=media+total;usuarios=usuarios+1;
	if(total>maior_valor) {	   maior_valor=total;	   codigo=cod_cliente; }
  	printf("Código do cliente.....: %f \n\n",cod_cliente);	printf("Tipo de Telefone......: %f \n\n",telefone);	printf("Pulsos gastos.........: %f \n\n", pulsos);	printf("Serviço de Despertador:%f \n\n",despertador);	printf("Dano o total..........: R$ %f \n\n",total);
} //fim do while
media=media/usuarios;
printf("O custo médio por cliente foi de R$ %f \n",media);printf("O cliente de código: %d ",codigo,", foi o que mais gastou.\n");printf("Com o custo total de R$ %f \n",maior_valor);
system("pause");
}

Só que esta apresentando erro na hora de mostrar os resultados certos

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua lógica está certa. O que faltou foi colocar algumas coisas pra dentro do 'if ( cod_cliente != 0 )'.

Segue código para estudo:


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

int main(void)
{

float cod_cliente = 0.0;
float codigo = 0.0;
float tipo_telefone = 0.0;
float pulsos = 0.0;
float despertador = 0.0;
float usuarios = 0.0;
float total = 0.0;
float maior_valor = 0.0;
float media = 0.0;
float pulsos_excedentes = 0.0;
//char telefone;

cod_cliente = 1;

while ( cod_cliente != 0 )
{

printf("Digite o codigo do cliente: ");
scanf("%f", &cod_cliente);

if ( cod_cliente != 0 )
{
printf("Digite (1) para residencial ou (2) para comercial: ");
scanf("%f", &tipo_telefone);
printf("Digite a quantidade de pulsos consumida: ");
scanf("%f", &pulsos);
printf("Digite o número de vezes que o cliente solicitou o servico de despertador: ");
scanf("%f", &despertador);

if ( tipo_telefone == 1 )
{
tipo_telefone = 1.20;
printf("\nresidencial\n");
//telefone = " residencial";
}
else
{
tipo_telefone = 1.30;
printf("\ncomercial\n");
}
if ( pulsos > 90 )
{
pulsos_excedentes = ( pulsos - 90 ) * 0.45;
}

total = tipo_telefone + pulsos_excedentes + ( despertador * 4.20 );
media = media + total;
usuarios = usuarios + 1;

if ( total > maior_valor )
{
maior_valor = total;
codigo = cod_cliente;
}

printf("Codigo do cliente.....: %f \n\n", cod_cliente );
printf("Tipo de Telefone......: R$ %f \n\n", tipo_telefone );
printf("Pulsos gastos.........: %f \n\n", pulsos );
printf("Servico de Despertador: R$ %f \n\n", despertador );
printf("Dando o total..........: R$ %f \n\n", total );
}

} //fim do while

if ( usuarios != 0 )
{
media = media / usuarios;

printf("O custo medio por cliente foi de R$ %f \n", media );
printf("O cliente de codigo: %f foi o que mais gastou.\n", codigo );
printf("Com o custo total de R$ %f \n", maior_valor );
}

return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Obrigado pela ajuda.

    A sua lógica está certa. O que faltou foi colocar algumas coisas pra dentro do 'if ( cod_cliente != 0 )'.

    Segue código para estudo:

    #include <stdio.h>#include <stdlib.h>#include <conio.h>
    int main(void){
        float cod_cliente = 0.0;    float codigo = 0.0;    float tipo_telefone = 0.0;    float pulsos = 0.0;    float despertador = 0.0;    float usuarios = 0.0;    float total = 0.0;    float maior_valor = 0.0;    float media = 0.0;    float pulsos_excedentes = 0.0;    //char telefone;
        cod_cliente = 1;
        while ( cod_cliente != 0 )    {
            printf("Digite o codigo do cliente: ");        scanf("%f", &cod_cliente);
            if ( cod_cliente != 0 )        {            printf("Digite (1) para residencial ou (2) para comercial: ");            scanf("%f", &tipo_telefone);            printf("Digite a quantidade de pulsos consumida: ");            scanf("%f", &pulsos);            printf("Digite o número de vezes que o cliente solicitou o servico de despertador: ");            scanf("%f", &despertador);
                if ( tipo_telefone == 1 )            {                tipo_telefone = 1.20;                printf("\nresidencial\n");                //telefone = " residencial";            }            else            {                tipo_telefone = 1.30;                printf("\ncomercial\n");            }            if ( pulsos > 90 )            {                pulsos_excedentes = ( pulsos - 90 ) * 0.45;            }
                total = tipo_telefone + pulsos_excedentes + ( despertador * 4.20 );            media = media + total;            usuarios = usuarios + 1;
                if ( total > maior_valor )            {                maior_valor = total;                codigo = cod_cliente;            }
                printf("Codigo do cliente.....: %f \n\n", cod_cliente );            printf("Tipo de Telefone......: R$ %f \n\n", tipo_telefone );            printf("Pulsos gastos.........: %f \n\n", pulsos );            printf("Servico de Despertador: R$ %f \n\n", despertador );            printf("Dando o total..........: R$ %f \n\n", total );        }
        } //fim do while
        if ( usuarios != 0 )    {        media = media / usuarios;
            printf("O custo medio por cliente foi de R$ %f \n", media );        printf("O cliente de codigo: %f foi o que mais gastou.\n", codigo );        printf("Com o custo total de R$ %f \n", maior_valor );    }
        return 0;}

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×