|Jezao| 0 Denunciar post Postado Junho 15, 2006 olá, estou fazendo um exercicio,mas estou c/ problemas... O exercicio é o seguinte: Escrever um programa em linguagem C que receba números inteiros do usuário e preencha uma matriz com 3 linhas e 3 colunas. O programa deverá verificar se a matriz recebida é simétrica. Uma matriz é simétrica quando ela é igual a sua transposta. Utilize constantes para definir as dimensões da matriz. o codigo que estou utilizando é esse: #include<stdio.h>#define lin 3#define col 3 main(){ //INICIO int fMatriz[lin][col],fMatrizT[col][lin],i,j,sime=0; //////////////////////////////////////////////////////////////////////////////// for(j=0;j<col;j++) { for(i=0;i<lin;i++) { printf("\nEscreva o elemento de indice:%i%i\n",i+1,j+1); scanf("%f",&fMatriz[i][j]); fMatrizT[i][j]=fMatriz[j][i]; } }//////////////////////////////////////////////////////////////////////////////// while(sime==0) { for(j=0;j<col;j++) { for(i=0;i<lin;i++) { if(fMatriz[i][j]!=fMatrizT[i][j]) sime=1; } } } switch(sime) { case 1: printf("A matriz não é simetrica"); break; case 0: printf("A Matriz é simetrica"); break; } getch(); }//FIMEstou errando na lógica?? Compartilhar este post Link para o post Compartilhar em outros sites
volmir 0 Denunciar post Postado Junho 18, 2006 gostaria de saber como faço para construir esse algoritimo, em pseudo codigo?Construir um algoritmo que calcule a média final do aluno desta disciplina. Para isso, deve executar os seguintes procedimentos: ler a matrícula do aluno, as notas das ADs e da AP; criar uma função chamada MEDIA, para calcular média do aluno, onde (media = (AD1 + AD2) * 4 + AP * 6 / 10); Observe que a função deve receber como parâmtero as três notas do aluno (AD1, AD2 e AP) e retornar o valor calculado da média. criar uma função chamada RESULTADO que receba de parâmetro a média do aluno. Essa função deve retornar se o aluno foi aprovado (media >=7.0), reprovado (média <2) ou recuperação (média entre 2.0 e 6.9) mostrar na tela a matrícula do aluno, suas notas, média e o resultado. se o aluno estiver em recuperação, informar qual deve ser a nota que ele deverá tirar na Avaliação Final (Nota = 12-média) Compartilhar este post Link para o post Compartilhar em outros sites
System 0 Denunciar post Postado Junho 19, 2006 volmir, não invada o tópico! :angry: 1. Para calcular a média, crie duas variáveis, x e y. 2. Crie um repete que percorre os números, sendo que a cada volta x soma com o número atual e y soma 1. 3. Divida x por y. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Urbieta 0 Denunciar post Postado Julho 3, 2006 |Jezao|, eu acho que seu código está errado. Vamos supor que, lá dentro do seu "for", nunca aconteça de (fMatriz[j]!=fMatrizT[j]) ser verdade. Ou seja, vamos supor que a matriz não seja simétrica. Se a matriz não for simétrica, então teríamos um "while" sem fim, pois nunca a variável sime passaria a valer 1. Se a matriz não for simétrica, ele rodaria os dois "for", sime continuaria valendo 0. Como sime é 0, ele rodaria os dois "for", e sime continuaria valendo 0. Como sime é 0, ele rodaria os dois "for", e sime continuaria valendo 0. ... hehe... Vou colocar só a parte da verificação aqui, porque a leitura dos elementos da matriz e as outras partes estão certas, creio. j=0;while (sime = 0 && j<col) { i=0; while (sime = 0 && i<lin) { if (fMatriz[i][j] != fMatrizT[i][j]) sime = 1; i++; } j++;} Veja que o while é melhor do que o for. Se fosse usado o "for", mesmo que sime fosse mudado alguma hora pra 1, ele continuaria rodando o laço, o que seria desnecessário. Não testei aqui ainda, mas acho desse jeito está certo. Pode me mandar e-mail se estiver errado o jeito que eu fiz aí... também quero saber como é. bru_no0@hotmail.com http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif Compartilhar este post Link para o post Compartilhar em outros sites
Cypher 0 Denunciar post Postado Julho 18, 2006 ya tudo bem até aqui mas tenta fazer uma simetria para o outro lado....pois é bastante mais complicado !!! (e não é da mesma maneira) Compartilhar este post Link para o post Compartilhar em outros sites
abcd_man 0 Denunciar post Postado Julho 27, 2006 Pra mim o código dele tá correto e não entende o que é uma simetria pro outro lado Compartilhar este post Link para o post Compartilhar em outros sites