the kawawaka Posted December 2, 2012 Report Share Posted December 2, 2012 (edited) Meu ultimo post foi foi uma questão que até hoje.. não resolvi..LOL (ok...pra alguns devem ser fácil...) Mas, dai percebi que tinha que começar de novo e resolver questões mais fáceis... Passei essa semana (sempre que tinha tempo) lendo a teoria.. e tals.. Dai resolvi essas daqui... vejam o que acham... Me digam no que melhorar.. ou o que ainda está errado... ou se está muito ruim.. PS: não sei ainda ponteiros, nem strings. tell me something... 5. Escreva um programa que calcule o produto de uma matriz A5x6 com uma matriz B6x5, armazene o resultado em uma matriz C. Exiba o resultado na saída. 6. Elaborar um programa que leia uma matriz A de dimensão 5 x 7 de inteiros e verifique qual é seu maior elemento e imprima-o juntamente com sua posição na matriz (linha e coluna). 3.Escreva um programa que leia uma matriz A de dimensão N x N (N<10) de valores reais, calcule e imprima a soma dos elementos da diagonal secundária ====================== 5. ====================== #include<stdio.h> #include<stdlib.h> #define aux1 2 #define aux2 2 #define aux3 2 int main() { int matrizA[aux1][aux2]={0,0,0,0}; int matrizB[aux2][aux3]={0,0,0,0}; int matrizC[aux1][aux3]={0,0,0,0}; int i=0; int j=0; int k=0; printf("Digite somente numeros inteiros\n"); do{ for(i=0; i<aux1; i++){ for(j=0; j<aux2; j++){ printf("MATRIZ A: [%d][%d]=",i+1,j+1); scanf("%d", &matrizA[i][j]); if(matrizA[i][j]<0) { printf("Valor invalido! Digite somente numeros inteiros!\n"); matrizA[i][j]=0;//para armazenar no posição correta j--;//como o j volta+1, aqui ele volta a ser o anterior } } } }while(matrizA[i][j]<0); printf("\n"); do{ for(i=0;i<aux2;i++){ for(j=0;j<aux3;j++){ printf("MATRIZ B: [%d][%d]=",i+1,j+1); scanf("%d", &matrizB[i][j]); if(matrizB[i][j]<0) { printf("Valor invalido! Digite somente numeros inteiros!\n"); matrizB[i][j]=0;//para armazenar no posição correta j--;//como o j volta+1, aqui ele volta a ser o anterior } } } }while(matrizB[i][j]<0); for(i=0; i<aux1; i++){ for(j=0; j<aux3; j++){ matrizC[i][j]=0; for(k=0; k<aux2; k++){ matrizC[i][j]+=matrizA[i][k]*matrizB[k][j]; } } } printf("MATRIZ A: \n"); for(i=0; i<aux1; i++){ for(j=0; j<aux2; j++){ printf("%d ",matrizA[i][j]); } printf("\n"); } printf("MATRIZ B: \n"); for(i=0; i<aux2; i++){ for(j=0; j<aux3; j++){ printf("%d ",matrizB[i][j]); } printf("\n"); } printf("MATRIZ C: \n"); for(i=0; i<aux1; i++){ for(j=0; j<aux3; j++){ printf("%d ", matrizC[i][j]); } printf("\n"); } system("pause"); } Edited December 3, 2012 by pmg Falta LP Link to comment Share on other sites More sharing options...
the kawawaka Posted December 2, 2012 Author Report Share Posted December 2, 2012 (edited) ==================== 6 ====================== #include<stdio.h> #include<stdlib.h> #define LINHA 2 #define COLUNA 2 int main() { int matrizA[LINHA][COLUNA]={0,0,0,0}; int maior=0; int menor=0; int i=0; int j=0; int novaL[1]={0}; int novaC[1]={0}; printf("Digite somente valores inteiros\n"); //pedindo os elementos da matriz A do{ for(i=0; i<LINHA; i++){ for(j=0; j<COLUNA; j++){ printf("MATRIZ A : [%d][%d]= ", i+1, j+1); scanf("%d", &matrizA[i][j]); if(matrizA[i][j]<0) { printf("VALOR INVALIDO! DIGITE VALORES INTEIROS!\n"); matrizA[i][j]=0; j--; } else { if(matrizA[i][j]>maior) { maior=matrizA[i][j]; novaL[0]=i; novaC[0]=j; } if(matrizA[i][j]==maior) { menor=matrizA[i][j]; novaL[0]=i; novaC[0]=j; } if(menor>maior) { maior=menor; novaL[0]=i; novaC[0]=j; } } } } }while(matrizA[i][j]<0); printf("POSICAO E MAIOR ELEMENTO [%d][%d]= %d\n\n", novaL[0]+1, novaC[0]+1, maior); system("pause"); } ========================== 03 ============================ #include<stdio.h> #include<stdlib.h> int main() { float matrizA[10][10]={0,0,0,0}; int novaL[1]={0}; int novaC[1]={0}; float somamatriz=0; int i=0; int j=0; int linha=0; printf("Digite somente valores inteiros\n"); //pedindo os elementos da matriz A do{ printf("Digite o valor de N (da dimencao da matriz): "); scanf("%d", &linha); if(linha>10 || linha<=0) { printf("DIGITE VALORES INTEIROS MENORES QUE 10\n"); linha=0; } }while(linha>10 || linha<=0); printf("Digite o elemento da : \n"); for(i=0; i<linha; i++){ for(j=0; j<linha; j++){ printf("MATRIZ : [%d][%d]= ", i+1, j+1); scanf("%f", &matrizA[i][j]); novaL[0]=i; novaC[0]=j; if(novaL[0]!=novaC[0]) { somamatriz=somamatriz+matrizA[i][j]; } } } printf("SOMA DOS ELEMENTOS DA DIAGONAL SECUNDARIA = %.2f\n", somamatriz); system("pause"); } Edited December 3, 2012 by pmg Falta LP Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 3, 2012 Report Share Posted December 3, 2012 05 - se tens código repetido/semelhante é uma boa opção criar uma função para isso nem consegui ler bem o código, mas a quantidade de ciclos que tens de certeza que tens algum gato 06 - novamente começas com um do {} while que não faz sentido nem faço ideia o que anda para lá o menor a fazer, assim o que fazem com ele ... 03 - não estas a fazer a soma dos elementos da diagonal secundária IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
the kawawaka Posted December 4, 2012 Author Report Share Posted December 4, 2012 05 - se tens código repetido/semelhante é uma boa opção criar uma função para isso nem consegui ler bem o código, mas a quantidade de ciclos que tens de certeza que tens algum gato meu professor não ensinou função, nem strings e nem ponteiros ainda...mas quando eu chegar nessa parte eu vou lembrar do que você me falou sobre usar funções para otimizar um código 06 - novamente começas com um do {} while que não faz sentido nem faço ideia o que anda para lá o menor a fazer, assim o que fazem com ele ... minha intenção quando eu coloquei o do while, foi que ele pedisse primeiro cada elemento da matriz e se fosse negativo, ele avisasse o erro ao usuário com uma mensagem e pedisse ao usuário para digitar novamente, guardando o elemento na matriz, e na posição certa.. mas ja que está errado, vou estudar mais e deixar isso com menos cara de "gato" e ver o que estou fazendo de errado ok ? kk, obrigada pela ajuda : ) Link to comment Share on other sites More sharing options...
thoga31 Posted December 4, 2012 Report Share Posted December 4, 2012 meu professor não ensinou função, nem strings e nem ponteiros ainda...mas quando eu chegar nessa parte eu vou lembrar do que você me falou sobre usar funções para otimizar um código Não ensinou funções ainda? Simples: // a função: int soma(int a, b) { return a+b; } //como chamar a função: variavel = soma(1,2); Isto permite-te concentrar em funções certos processos que terás de utilizar várias vezes, poupando trabalho e linhas de código, e evitando código-de-olhos-em-bico, como eu lhe chamo. Knowledge is free! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now