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

matrizes em c++


O aprendiz do aprendiz

Pergunta

Primeiramente desejo a todos um bom dia.

Estou tentando resolver alguns problemas em c++ (creio que seja importante avisar que ainda sou iniciante e não compreendo muito bem a linguagem). minha duvida é a seguinte: Porque quando eu executo o código no caso da pergunta A por qual motivo a variavel: por_f da um numero aleatorio, se possível alguém poderia me explicar como devo arrumar isso?

obs; esse código é para determinar quantas estradas saem e quantas estradas chegam á cidade x
e qual cidade possui o maior numero de saídas


exercício proposto:

Considere 𝑛 cidades numeradas de 0 a 𝑛 − 1 que estão interligadas por uma série de estradas de mão única. As ligações entre as cidades são representadas pelos elementos de uma matriz quadrada 𝐿𝑛 𝑥 𝑛, cujos elementos 𝑙𝑖𝑗 assumem o valor 1 ou 0, conforme exista ou não estrada direta que saia da cidade i e chegue à cidade 𝑗. Assim, os elementos da linha 𝑖 indicam as estradas que saem da cidade 𝑖, e os elementos da coluna 𝑗 indicam as estradas que chegam à cidade 𝑗. 𝐿 = [ 1 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 ] Crie um programa que, dada uma matriz quadrada 𝐿𝑛 𝑥 𝑛 que represente a estrutura apresentada, tenha uma função que solucione o problema proposto em cada um dos itens abaixo. Seu programa deve possuir um menu em um loop para que o usuário escolha qual problema resolver ou quando deseja sair do mesmo, deve permitir que o usuário entre uma única vez com a matriz desejada e, para cada item, o usuário deve inserir novas entradas específicas do problema. Explique a sua ideia para a resolução de cada um dos problemas propostos. OBS: O número de colunas pode ser fixado por você no código, mas deve permitir sua alteração de forma fácil, através de uma variável.

a) Dado uma cidade ka definida pelo usuário, determinar quantas estradas saem e quantas estradas chegam à cidade ka.

b) Dada a matriz de entrada, qual das cidades possui o maior número de estradas que saem da mesma?

 


#include <iostream>
#include <math.h>
#include <locale.h>
#define tamanho 4
using namespace std;

int main()
{
    setlocale(LC_ALL,"Portuguese");
  int opera_soma_ou_subtra, m,i, j,colunas2,linhas2,cidade,caminho,contador;
  int por_d, por_f,cidades,contador_2;

 int l[tamanho][tamanho]={1,1,1,0,
                          0,1,1,0,
                          1,0,1,1,
                          0,0,1,1};


//

    cout << "\nescolhe se queres reponder a pergunta A ou a B \ncaso queira a A escreva:1 \ncaso queiraBa escreva:2\n\n";
  cin >> opera_soma_ou_subtra;







  if( opera_soma_ou_subtra == 1)
    {

          ///Pergunta A  

         cout << "Informe a cidade de partida (lembrado que o numero maximo é 4 e o minimo é 0  " << endl;
         cin >> cidade;


         while (cidade<0 || cidade>3){
         cout << "\nVish vai dar não,pois essa cidade não está no sistema :)\n"<< endl;

         cout << "Informe a cidade de partida (lembrado que o numero maximo é 4 e o minimo é 0  " << endl;
         cin >> cidade;
         }
         for(i=0;i<tamanho;i=i+1)
                     if(cidade!=i)
            {
                 if (l[i][cidade] == 1) { por_d=por_d + 1; }
                 if (l[cidade][i] == 1) { por_f=por_f + 1; }
            }

             cout << "existem "<< por_f<<" estradas de saida e "<<  por_d << " estradas que chegam" ;         }






                ///Pergunta B

  else if(opera_soma_ou_subtra == 2){

             cidades= - 1;
             contador_2= - 1;





        for(m=0;m<tamanho;m=m+1){




        for (m = 0; m < tamanho; i++) {
        contador = 0;

        for (j = 0; j < tamanho; j++) {
            if (l[j][m] == 1) {
                   contador++;
            }
        }
        if (contador > contador_2) {
            contador_2 = contador;
            cidades = m;
        }
    }}
 

            cout << "A cidades que tem mais saida e entadas são:"<<cidades<< "com"<< contador_2-1<< endl;

 
         }
         ///Pergunta C  


        else if(opera_soma_ou_subtra == 3){




        }
 ///Pergunta d


else if(opera_soma_ou_subtra == 4){


}
    return 0;

}

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