Ir ao conteúdo
  • Cadastre-se

Ajuda - Iniciante


rs40

Posts recomendados

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?

Link para o comentário
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;
}

Link para o comentário
Compartilhar em outros sites

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;}
Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...