Ir ao conteúdo
  • Cadastre-se

C O novo prédio da Sociedade Brasileira de Computação (SBC)


immoraesz

Posts recomendados

O novo prédio da Sociedade Brasileira de Computação (SBC) possui 3 andares. Em determinadas épocas do ano, os funcionários da SBC bebem muito café. Por conta disso, a presidência da SBC decidiu presentear os funcionários com uma nova máquina de expresso. Esta máquina deve ser instalada em um dos 3 andares, mas a instalação deve ser feita de forma que as pessoas não percam muito tempo subindo e descendo escadas.

Cada funcionário da SBC bebe 1 café expresso por dia. Ele precisa ir do andar onde trabalha até o andar onde está a máquina e voltar para seu posto de trabalho. Todo funcionário leva 1 minuto para subir ou descer um andar. Como a SBC se importa muito com a eficiência, ela quer posicionar a máquina de forma a minimizar o tempo total gasto subindo e descendo escadas.

Sua tarefa é ajudar a diretoria a posicionar a máquina de forma a minimizar o tempo total gasto pelos funcionários subindo e descendo escadas.

Entrada

A entrada consiste em 3 números, A1 , A2 , A3 (0 ≤ A1 , A2 , A3 ≤ 1000), um por linha, onde Ai representa o número de pessoas que trabalham no i-ésimo andar.

Saída

Seu programa deve imprimir uma única linha, contendo o número total de minutos a serem gastos com o melhor posicionamento possível da máquina.

 

#include <stdio.h>
#include <math.h>

int main(){
 
    int funcionarios1, funcionarios2, funcionarios3;
    int total1, total2, total3, total4, andar = 0;
    
    scanf("%d", &funcionarios1);
    scanf("%d", &funcionarios2);
    scanf("%d", &funcionarios3);
    
        if(andar = 1){
            total1 = funcionarios3 * 0;
            total2 = funcionarios2 * 1;
            total3 = funcionarios3 * 2;
            total4 = total1 + total2 + total3;
            printf("%d", total4);
        }
        
        else if(andar = 2){
            total1 = funcionarios3 * 1;
            total2 = funcionarios2 * 0;
            total3 = funcionarios3 * 1;
            total4 = total1 + total2 + total3;
            printf("%d", total4);
        }
        
        else if(andar = 3){
            total1 = funcionarios3 * 2;
            total2 = funcionarios2 * 1;
            total3 = funcionarios3 * 0;
            total4 = total1 + total2 + total3;
            printf("%d", total4);
        }
 
    return 0;
}

Alguém consegue arrumar esse programa? Acho que o erro está na parte do "andar".

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, immoraesz disse:

O novo prédio da Sociedade Brasileira de Computação (SBC) possui 3 andares. Em determinadas épocas do ano, os funcionários da SBC bebem muito café. Por conta disso, a presidência da SBC decidiu presentear os funcionários com uma nova máquina de expresso. Esta máquina deve ser instalada em um dos 3 andares, mas a instalação deve ser feita de forma que as pessoas não percam muito tempo subindo e descendo escadas.

Cada funcionário da SBC bebe 1 café expresso por dia. Ele precisa ir do andar onde trabalha até o andar onde está a máquina e voltar para seu posto de trabalho. Todo funcionário leva 1 minuto para subir ou descer um andar. Como a SBC se importa muito com a eficiência, ela quer posicionar a máquina de forma a minimizar o tempo total gasto subindo e descendo escadas.

Sua tarefa é ajudar a diretoria a posicionar a máquina de forma a minimizar o tempo total gasto pelos funcionários subindo e descendo escadas.

Entrada

A entrada consiste em 3 números, A1 , A2 , A3 (0 ≤ A1 , A2 , A3 ≤ 1000), um por linha, onde Ai representa o número de pessoas que trabalham no i-ésimo andar.

Saída

Seu programa deve imprimir uma única linha, contendo o número total de minutos a serem gastos com o melhor posicionamento possível da máquina.

 

#include <stdio.h>
#include <math.h>

int main(){
 
    int funcionarios1, funcionarios2, funcionarios3;
    int total1, total2, total3, total4, andar = 0;
    
    scanf("%d", &funcionarios1);
    scanf("%d", &funcionarios2);
    scanf("%d", &funcionarios3);
    
        if(andar = 1){
            total1 = funcionarios3 * 0;
            total2 = funcionarios2 * 1;
            total3 = funcionarios3 * 2;
            total4 = total1 + total2 + total3;
            printf("%d", total4);
        }
        
        else if(andar = 2){
            total1 = funcionarios3 * 1;
            total2 = funcionarios2 * 0;
            total3 = funcionarios3 * 1;
            total4 = total1 + total2 + total3;
            printf("%d", total4);
        }
        
        else if(andar = 3){
            total1 = funcionarios3 * 2;
            total2 = funcionarios2 * 1;
            total3 = funcionarios3 * 0;
            total4 = total1 + total2 + total3;
            printf("%d", total4);
        }
 
    return 0;
}

Alguém consegue arrumar esse programa? Acho que o erro está na parte do "andar".

você usou "=" em vez de "==" nos ifs.

O andar começa com 0, não muda e você está fazendo a comparação nos ifs com ele, não vai funcionar para o que você quer.

Uma ideia para resolver é a seguinte: você calcula o tempo por andar, quanto tempo levaria para chegar na máquina de café se ela estivesse no andar1,  quanto tempo levaria para chegar na máquina de café se ela estivesse no andar2 e  quanto tempo levaria para chegar na máquina de café se ela estivesse no andar3.

Poderia até ser algo assim:

totalAndar1 = (funcionarios1*0)+(funcionarios2 * 1)+(funcionarios3 * 2);//soma do tempo quando a maquina está no 1 andar

Pronto, agora você tem 3 valores, bastando comparar qual desses 3 valores é o menor.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...