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

(Resolvido) Ajudem por favor


cheila69

Pergunta

alguém poderia me ajudar a entender este código?, Reescrevendo ele em portugol? muito obrigada!

#include<stdio.h>

#define MAX_AERO 100
#define MAX_VOOS 10000

int main (void)
{
    int estatistica[MAX_AERO], i;
    int aeroportos, voos, teste = 1;
    int orig, dest, maior;

    while (1)
    {
        scanf("%d %d", &aeroportos, &voos);
        if (!aeroportos && !voos) break;
    
        for (i = 0; i < aeroportos; i++)
        {
            estatistica[i] = 0;
        }
    
        for (i = 0; i < voos; i++)
        {
            scanf("%d %d", &orig, &dest);
            estatistica[orig-1]++;
            estatistica[dest-1]++;
        }
        maior = estatistica[0];
        for (i = 0; i < aeroportos; i++)
        {
            if (estatistica[i] > maior) maior = estatistica[i];
        }
        
        printf("Teste %d\n", teste++);
        for (i = 0; i < aeroportos; i++)
        {
            if (estatistica[i] == maior) 
            {
                printf("%d ", i + 1);
            }
        }
        printf("\n\n");
    }
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'cheila69'!

Este código está em C e não em pascal.

Vamos lá:

#include<stdio.h> /* está chamando uma biblioteca de apoio para entrada e saida de dados */

#define MAX_AERO 100
#define MAX_VOOS 10000 /* Nesta linha e na de cima está definindo constantes que serão usadas no decorrer do programa */

int main (void) /* início do programa principal */
{
   /* As 3 linhas abaixo estão declarando variáveis locais todas do tipo inteiro*/ 
    int estatistica[MAX_AERO], i; /* a variável estatística é um vetor com MAX_AERO (100) posições */
    int aeroportos, voos, teste = 1; /* a variável teste já está recebendo um valor inicial no momento da declaração */
    int orig, dest, maior;

    while (1) /* faça enquanto for verdadeiro (para a linguagem C 0 é falso e qualquer valor diferente de zero é verdadeiro) */
    {
        scanf("%d %d", &aeroportos, &voos); /* leia do teclado e coloque nas variáveis */
        if (!aeroportos && !voos) break; /* Se o conteúdo de ambas as variáveis for falso então sai do laço do while */
     
       /* A leitura fo FOR (para) em C diverge das outras linguagens. O for deve ser tratado como um faça enquanto. então,
      podemos lê-lo da seguinte maneira:
      i = 0  --->>> Atribua a i o valor 0 
      i < aeroportos --->>> faça enquanto o valor de i for menor que o valor em aeroportos 
      estatistica[i] = 0 --->>> Atribua 0 ao vetor estatística na posição indicada por i
      i++ --->>> incremente a variável i em 1 ou seja i = i + 1 */
        for (i = 0; i < aeroportos; i++)         {
            estatistica[i] = 0;
        }
    
        /* Leia-se da mesma forma que o anterior: Para i = 0, enquanto i menor que voos faça:
        leia do teclado e atribua os valores nas variáveis orig e dest
        Incremente 1 ao vetor estatística na posição orig -1
        Incremente 1 ao vetor estatística na posição dest -1
        Incremente 1 a variável i */
        for (i = 0; i < voos; i++)
        {
            scanf("%d %d", &orig, &dest);
            estatistica[orig-1]++;
            estatistica[dest-1]++;
        }
        maior = estatistica[0]; /* Atribua a variável maior o valor que está no vetor estatistica posição 0 */

        for (i = 0; i < aeroportos; i++)
        {
            if (estatistica[i] > maior) maior = estatistica[i];
        }
        
        printf("Teste %d\n", teste++); /* Exiba na tela a palavra "Teste" e o valor da variável teste. 
        Após exibir Incremente 1 a variável teste */
        for (i = 0; i < aeroportos; i++)
        {
            if (estatistica[i] == maior) 
            {
                printf("%d ", i + 1);
            }
        }
        printf("\n\n"); /* pule duas linhas na exibição em tela */
    }
    
    return 0; /* Fim de execução */
}

Link para o comentário
Compartilhar em outros sites

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