Ir para conteúdo

POWERED BY:

Arquivado

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

deco86

funçao por parametro

Recommended Posts

olá pessoal tenho q fazer uma lista de exercicos mais nao sei por onde começar!!!

se vcs puderem me ajudar fazendo esse pra eu ter um ideia

 

 

FAÇA UMA FUNÇAO QUE RECEBA POR PARAMETRO ,DUAS MATRIZES A(4,6) E B(6,4) E RETORNAR UMA MATRIZ C,

TAMBÉM POR PARAMETRO QUE SEJA A DIFERENÇA DE M E N .

 

DESDE JA AGRADEÇO A FORÇA!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom retornar a matriz por parametro naum sei como é naum + pra passar da pra fazer assim:

int mat(int mat1[][], int mat2[][]){
.
.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade qualquer valor q se passe para uma funcao eh um parametro, entao toda passagem eh "por parametro", q entao pode ser por valor ou por referencia. E ateh onde eu sei nao eh possivel retornar um vetor, nem matriz diretamente. De forma indireta soh retornando um ponteiro, ou entao uma estrutura contendo a matriz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tentei mais nao ta rodando olha ai o q eu fiz...

 

 

#include<stdio.h>
#include<stdlib.h>
void funcaosomadevetores (int v1[4],int v2[4],int *p);

 main()
{
	  int vetor[4],vetor2[4],vetortotal[4],cont;
	  printf("\n\n\tDigite os dados do primeiro vetor: ");
	  printf("\n\n\t----------------------------------- ");
	  for(cont=0;cont<4;cont++)
	   {
	   printf("\n\n\tvetor[%d]=  ",cont+1);
	   scanf("%d",&vetor[cont]);
	   }
		  
	   printf("\n\n\tDigite os dados do segundo vetor: ");
	   printf("\n\n\t----------------------------------- ");
	   for(cont=0;cont<4;cont++)
		 {
		 printf("\n\n\tvetor2[%d]=  ",cont+1);
		 scanf("%d",&vetor2[cont]);  
		 }
		 
		 funcaosomadevetores(vetor,vetor2,&vetortotal[0]);
		 printf("\n\n\t\tvetor soma resultado eh ");
		 
		 for(cont=0;cont<4;cont++)
		   {
		   printf("vetortotal[%d]=%d",cont+1,vetortotal[cont]);
		   }
		
		printf("\n\n\n\n");
		system("pause");					  
}

void funcaosomadevetores ( int v1[4], int v2[4], int *p)
{
	 int i;
	 
	 for(i=0;i,4;i++)
	 {
	 *(p+i)=v1[i]+v2[i];
	 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum tenho como compilar agora + pq passow o terceiro parametro assim:

...,&vetortotal[0]);

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
E ateh onde eu sei nao eh possivel retornar um vetor, nem matriz diretamente. De forma indireta soh retornando um ponteiro, ou entao uma estrutura contendo a matriz.

 

Jogue fora a palavra vetor.

O caso de int * é um pouco mais complicado porque não se tem delimitador, mas na memória tudo é uma seqüência e você só precisa saber o endereço de início e o tamanho.

 

char * vet(){
static char V[] = "teste array";
return V;
}

int main(void) {
 char *T;
 T = vet();
 printf("%s\n",T);
}

 

Breakpoint 1, vet () at vet.c:6

6 return V;

(gdb) display &V

1: &V = (char (*)[12]) 0x8049628

(gdb) display V

2: V = "teste array"

(gdb) display &V[0]

3: &V[0] = 0x8049628 "teste array"

 

Breakpoint 2, main () at vet.c:14

14 printf("%s\n",T);

3: &V[0] = 0x8049628 "teste array"

2: V = "teste array"

1: &V = (char (*)[12]) 0x8049628

(gdb) display T

4: T = 0x8049628 "teste array"

 

você continua trabalhando com array mesmo sem a sintaxe da linguagem permitir char []. O problema todo nessa história é que quando se ensina array não se diferencia a sintaxe que mexe na memória do dado em si. Na declaração já se reserva um endereço de memória. O tipo e o que vem entre colchetes serve só pra dimensionar (eg: char v[1] = char v).

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.