Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nehietala

Matrizes C

Recommended Posts

Boa Noite pessoal

Estou com um programa aqui que está me complicando bastante....

Eu fiz o codigo dele mais anda dando mtos erros.

Queria uma ajuda de vcs entao...

 

Primeiro: Qnd o usuario digita a primeira matriz eu gostaria de colocar ela desse modo

1 1

1 1

e nao que ela ficasse assim 1 1 1 1

Segundo: A soma nao está funcionando, eu nao sei o que há de errado com ela, pois todos ja me falaram que desse modo somaria.

Qnd o usuario digita o numero 2 dela, nao chama a função.

E qnt a transposta, multiplicação por um e pelas matrizes eu ainda estou tentando fazer...

Entao gostaria de algumas dicas sobre esses errinhos ai...

Obrigado....

 

#include<stdio.h>

#include<conio.h>

int leitura(int matriz[100][100],int matriz2[100][100]){

int mat1;

int i,j;

clrscr();

printf("----Primeira Matriz---");

printf("\nEntre com numero para preparar as duas matrizes quadradas: ");

scanf("%d",&mat1);

printf("\nPreenchimento Primeira Matriz\n");

for(i=0;i<mat1;i++){

for(j=0;j<mat1;j++){

printf("Entre com um numero");

scanf("%d", &matriz[j]);

printf("\n");

}

}

for (i = 0; i < mat1; i = i + 1){

for (j = 0; j < mat1; j = j + 1){

printf("%d", matriz[j]);

printf("\n");

}

}

 

printf("\n\n----Segunda Matriz---");

printf("\nPreenchimento Segunda Matriz\n");

for(i=0;i<mat1;i++){

for(j=0;j<mat1;j++){

printf("Entre com um numero");

scanf("%d", &matriz2[j]);

}

}

for (i=0;i<mat1;i=i++){

for (j=0;j<mat1;j=j++){

printf("%d", matriz[j]);

printf("\n");

}

}

}

 

int soma(int matriz1[100][100],int matriz2[100][100]){

int matriz3[100][100];

int i,j,mat1;

for(i=0;i<mat1;i++){

for(j=0;j<mat1;j++){

matriz3[j]=matriz1[j]+matriz2[j];

}

}

printf("A matriz soma :\n");

for(i=0;i<mat1;i++){

for(j=0;j<mat1;j++){

printf("%d", matriz3[j]);

}

}

}

 

void transposta(int matriz1[100][100],int matriz2[100][100],int mat1){

int i, j;

for(i=0;i<mat1;i=i++)

for(j=0;j<mat1;j=j++)

matriz1[j] = matriz2[j];

 

for (i = 0; i < m; i = i + 1)

for (j = 0; j < n; j = j + 1)

scanf("%d", &mat[j]);

printf( "\n");

transposta(mat1, matTransp, m, n);

for (i = 0; i < n; i = i + 1)

{

for (j = 0; j < m; j = j + 1)

printf("%3d", matTransp[j]);

printf("\n");

}

}

 

 

void main(){

int matriz1[100][100],matriz2[100][100];

int line1,col1,line2,col2,op,mat1,i,j;

do{

clrscr();

printf("==Programa Para Calculo Matriz==");

printf("\n1-Gerar Duas Matrizes");

printf("\n2-Soma Matrizes");

printf("\n3-Multiplicacao Por Um Escalar");

printf("\n4-Multiplicacao Matrizes");

printf("\n5-Geracao Transposta");

printf("\n6-Sair Programa");

printf("\nDigite a opcao: ");

scanf("%d",&op);

 

switch(op){

case 1:

clrscr();

leitura(matriz1,matriz2);

getch();

break;

case 2:

clrscr();

soma(matriz1,matriz2);

getch();

break;

case 3:

clrscr();

 

getch();

break;

case 4:

clrscr();

 

getch();

break;

case 5:

clrscr();

transposta(matriz1,matriz2,mat1);

}

}while(op!=6);

printf("Fim do Programa");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

do jeito q você ta fazendo seu programa.. aconselho a você declarar todas as 3 matrizes como globais..

 

Primeiro: Qnd o usuario digita a primeira matriz eu gostaria de colocar ela desse modo

1 1

1 1

Solução: Coloque o printf() fora do segundo for:

for (i = 0; i < mat1; i = i + 1){   for (j = 0; j < mat1; j = j + 1)	  printf("%d", matriz[i][j]);   printf("\n");}
você declarou a sua função de leitura das matrizes como int leitura(), mas ela naum precisa retornar nada..

entao soh coloque como void leitura, assim como a int soma()..

 

----

na sua funçao de soma das matrizes.. você colocou assim :

for(i=0;i<mat1;i++){	for(j=0;j<mat1;j++){	  matriz3[i][j]=matriz1[i][j]+matriz2[i][j];	}}
agora me explica: "AONDE você TA INICIALIZANDO A POHHA DO mat1??"

ele ta sem valor algum

você deve declarar o mat1 como global ou seja, fota do escobo das funções..

a linguagem C naum permite ler variaveis locais de uma função em outras funçoes..

 

-----

Qnd o usuario digita o numero 2 dela, nao chama a função.

Não chama pq você esta declarando a função soma como se ela fosse retornar um valor inteiro.

int soma(int matriz1[100][100],int matriz2[100][100])

mas se você colocar void no lugar do int e declarar as matrizes como globais vai ficar d boa..

 

eu soh vi os erros ate aki..

depois eu verifico o resto..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gostaria de saber se alguém tem funcionando o código das matrizes inversas para que eu pudesse dar uma olhada para ver se entendo como fazer em C, se alguem tiver um código que funcione me envie.Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.