the kawawaka Posted December 2, 2012 at 10:53 PM Report #485496 Posted December 2, 2012 at 10:53 PM (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 at 10:08 AM by pmg Falta LP
the kawawaka Posted December 2, 2012 at 11:13 PM Author Report #485499 Posted December 2, 2012 at 11:13 PM (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 at 10:08 AM by pmg Falta LP
HappyHippyHippo Posted December 3, 2012 at 08:57 AM Report #485517 Posted December 3, 2012 at 08:57 AM 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
the kawawaka Posted December 4, 2012 at 01:07 PM Author Report #485674 Posted December 4, 2012 at 01:07 PM 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 : )
thoga31 Posted December 4, 2012 at 05:15 PM Report #485713 Posted December 4, 2012 at 05:15 PM 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!
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