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
Pergunta
Robson Vitor
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
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.