Ir para conteúdo
Fórum Script Brasil
  • 0

Olimpiada de programação Unicamp - Nivel 2


Robson Vitor

Pergunta

Olá pessoal, estou desenvolvendo um código em C que resolva o problema proposto em um dos desafios disponibilizados no site de olimpíadas de programação da unicamp. o problema é esse: Aeroporto - Nível 2 de Programação .

Desenvolvi uma boa parte, só que estou com problemas na contagem dos elementos dentro de uma matriz bidimensional. As leituras são feitas normalmente e armazenadas na matriz, porém na hora de calcular quantas vezes apareceu um numero, não estou conseguindo. abaixo segue o código:

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


main()
{
    int num_aero,num_voos;
    int l,i,j,k,m;
    int matriz_linhas[100][100];
    int vetor_conta_voos[100];

    printf("Aeroportos: ");
    scanf("%i",&num_aero);

    printf("Voos: ");
    scanf("%i",&num_voos);
    
    printf("Insira os valores...\n\n");

            
    for (l=0; l < num_voos; l++)            
    {
                    
        scanf("%d %d",&matriz_linhas[l][0],&matriz_linhas[l][1]);                
        
        if ((matriz_linhas[l][0] == 0) && (matriz_linhas[l][1]) == 0)
            {
                printf("Saindo... \n");
                break;
            }
            
    
            else 
            {
                        
                while ((matriz_linhas[l][0] > num_aero) || (matriz_linhas[l][1]) > num_aero)
                {
                    printf("Aeroporto inexistente!! \n");
                    scanf("%d %d",&matriz_linhas[l][0],&matriz_linhas[l][1]);                
                };

                while ((matriz_linhas[l][0]) == (matriz_linhas[l][1]))
                {    
                    printf("Não é possível esse tipo de voo!! \n");
                    scanf("%d %d",&matriz_linhas[l][0],&matriz_linhas[l][1]);                
                };
                
            }
                

    
    }
    printf("\n\n");

    int matriz_conta_voos[100][100];
    

    for (j=1,i=0; j <= num_aero; j++,i++)
    { 
        
            matriz_conta_voos[i][0] = j;
//            printf("Matriz %i \n",matriz_conta_voos[i][0]);
        
    }
    
    for (j=1,i=0; j <= num_aero; j++,i++)
    { 
            vetor_conta_voos[i] = j;
            printf("Vetor[%i] %i \n",i,vetor_conta_voos[i]);

    }
    printf("\n\n");

    /* Testes de qual aeroporto terá mais probabilidade de congestionamento */
    
    for(i=0; i < num_voos;i++ )
    {
        for(j=0; j < 2; j++)
        {            
            if( matriz_linhas[i][j] == vetor_conta_voos[i] ) 
                        printf("Matriz_Linhas[%i][%i] é igual a 1 \n",i,j); //Neste caso só imprime, quando for pra somar só alterar a função
        }
            
    }
    
    
    
    /* Testes de qual aeroporto terá mais probabilidade de congestionamento */    
    
}

o compilador usado é o GCC 4.4.3

coloquei algumas coisas desnecessárias, imprimindo mensagens para o usuário, no código final irei tirar isso, é mais pra ficar mais fácil de testar.

Agradeço a atenção do pessoal caso alguém puder me ajudar resolver

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...