Mickzip 0 Denunciar post Postado Fevereiro 20, 2008 Olá a todos, Estou tentando implementar um programa em c++ que se consiste no seguinte: CODE A B C D E F GA 02 11 06 15 11 01 B 02 07 12 04 02 15 C 11 07 11 08 03 13 D 06 12 11 10 02 01 E 15 04 08 10 05 13 F 11 02 03 02 05 14 G 01 15 13 01 13 14 1. leia a Tabela 1, digitada pelo usuário, e informe ao usuario o tempo necessario para ir de uma cidade a outra. Observe que os nomes das cidades deverão ser fornecidos pelo usuário. Esta operacão devera ser realizada ate o momento que ele fornecer duas cidades iguais (origem e destino); 2. imprima a tabela sem repetições (apenas o triangulo superior ou inferior); 3. permita ao usuárioo informar varias cidades, ate inserir uma cidade com ne invalido (considere, por exemplo, a letra Z), e que imprima o tempo total para cumprir todo o percurso especificado entre as cidades fornecidas; 4. auxilie um usuário a escolher um roteiro de ferias, sendo que o usuario deve fornecer quatro cidades: a primeira é sua origem, a ultima é o seu destino e as outras duas caracterizam as cidades de descanso (no meio da viagem). Por isso, o programa deve fornecer ao usuário qual das duas opções e melhor, ou seja, qual fará com que o horário das duas viagens (origem para descanso, descanso para destino) seja o mais próximo possvel. até o momento o programa está da seguinte maneira CODE #include <cstdlib>#include <iostream> using namespace std; const int TAM=7; int mat[TAM][TAM]; char origem, destino; int distancia=0, a, b, c, d, e, f, g; void imprime(int i=0, int j=0 ){ for ( i=0; i<TAM; i++) for (j=0; j<TAM; j++) if (i==j) { mat[j]=distancia; cout<<"\n\t"<<mat[j]<<"\n";} if (i<j){ mat[j]=distancia; cout<<"\n\t"<<mat[j]<<"\n";} } int main(int argc, char *argv[]) { int origx, desty, i=0; do { cout<<"DIGITE A CIDADE DE ORIGEM (A, B, C, D, E, F, G) --> "; cin>>(origem); cout<<"DIGITE A CIDADE DE DESTINO (A, B, C, D, E, F, G) --> "; cin>>(destino); cout<<"DIGITE A DISTANCIA --> "; cin>>distancia; cout<<'\n'; origx= int (origem) - (int)'A'; // Pega valor ASCII do caractere digitado e subtrai 65 e atribui o resutado a "origx" desty= int (destino) - (int)'A'; // Pega valor ASCII do caractere digitado e subtrai 65 e atribui o resutado a "desty" mat [origx][desty]=distancia; mat [desty][origx]=distancia; }while (origem!=destino); system ("cls"); imprime(); // chamada a função do{ cout<<"ROTEIRO DE FERIAS: "; cout<<"DIGITE A CIDADE DE ORIGEM (A, B, C, D, E, F, G) --> "; cin>>(origem); cout<<"DIGITE A CIDADE DE DESTINO (A, B, C, D, E, F, G) --> "; cin>>(destino); //FALTA CODIGO }while(origem!=destino); system("PAUSE"); return EXIT_SUCCESS; } Não estou conseguindo nem fazer com que imprima no formato de uma tabela... o que estou fazendo de errado na hora de imprimir? Estou totalmente perdido... Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Fevereiro 20, 2008 no procedimento imprimi! você pega dois parametros! e qnd vai usar ele no main você naum passa parametro algum para o procedimento!! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Fevereiro 20, 2008 A função imprime usa valores padrões para os dois parametros. Então se nenhum valor for passado ele assumirá i e j = 0. Voce precisa prestar atenção ao escopo dos laços. É sempre recomendado usar as chaves para delimitar os comandos. void imprime(int i=0, int j=0 ){ for ( i=0; i<TAM; i++){ for (j=0; j<TAM; j++){ if (i==j){ mat[i][j]=distancia; cout<<"\n\t"<<mat[i][j]<<"\n"; } if (i<j){ mat[i][j]=distancia; cout<<"\n\t"<<mat[i][j]<<"\n"; } } } } Compartilhar este post Link para o post Compartilhar em outros sites