Ir ao conteúdo
  • Cadastre-se

vectores com funções em C


Zweiss

Posts recomendados

Tenho aqui um código de um vector com funções mas ao ler o código ele não me está a mostrar a o valor associado à posição do vector. Insiro o tamanho do vector (ex: 3), depois os valores que quero atribuir (ex: 2 9 20) e depois devia aparecer isto:
O valor 1: 2
O valor 2: 9
O valor 3: 20

Mas há frente de valor não me aparece os números que inseri.

//criar uma função que pede um valor ao utilizador, este valo vai ser o tamanho do nosso vector.
//declarar um vector com o tamanho inserido por este.
//preencher o vector com valores inseridos pelo utlizador (funcão)
//Uma funão que recebe como parâmetros, o vector e um inteiro, com o objectivo de percorrer o vector.
//Outra função para mostrar o conteúdo da posição do vector, esta função recebe um inteiro e mostra-o de seguida.

#include <stdio.h>

int pedir_tamanho();
int pedir_valor_vect(int n);
void func(int vector[], int tamanho);
void func_mostra(int vector[], int tamanho);
void mostra_int (int pos_vect);

int main ()
{
	setvbuf (stdout, NULL, _IONBF, 0);

	int tam = pedir_tamanho ();
	int vect[tam];
	func (vect, tam);


	int i, soma=0;

	//somar as posições do vetor
			for (i=0; i<tam; i++)
			{
				soma=soma+vect[i];
			}

	func_mostra (vect, tam);
}

//pedir o tamanho do vetor
int pedir_tamanho (int tama)
{
	printf ("Insira o tamanho do vector a criar: \n");
	scanf ("%d", &tama);

	return tama;
}


void func(int vector[], int tamanho)
{
	int i;

	for (i=0; i<tamanho; i++)
	{
		vector[i]=pedir_valor_vect(i);
	}
}

//mostrar o vetor
void func_mostra(int vector[], int tamanho)
{
	int i;

		for (i=0; i<tamanho; i++)
		{
			mostra_int(vector[i]);
		}
}

//pedir valores
int pedir_valor_vect(int n)
{
	int a;
	printf ("Insira numero %d: \n", n);
	scanf ("%d", &a);
	return a;
}

//mostra a posicão e o número
void mostra_int (int pos_vect)
{
	printf ("O valor %d: \n", pos_vect);
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Zweiss     você colocou o vetor vect dentro da função main e isso costuma causar erros, é melhor declarar o vetor como global colocando essa declaração lá no inicio antes da main, então coloquei essa declaração lá no inicio  :

   veja como ficou o seu código :

#include <stdio.h>

int tam=1,vect[1];

int pedir_tamanho();
int pedir_valor_vect(int n);
void func(int vector[], int tamanho);
void func_mostra(int vector[], int tamanho);
void mostra_int (int pos_vect,int i);

int main (){
	setvbuf (stdout, NULL, _IONBF, 0);

	tam = pedir_tamanho();
	vect[tam];
	func (vect, tam);

	int i, soma=0;

	//somar as posições do vetor
			for (i=0; i<tam; i++)
			{
				soma=soma+vect[i];
			}

	func_mostra (vect, tam);
}

//pedir o tamanho do vetor
int pedir_tamanho (){
    int tama;
	printf ("Insira o tamanho do vector a criar: ");
	scanf ("%d", &tama);

	return tama;
}

void func(int vector[], int tamanho){
	int i;

	for (i=0; i<tamanho; i++)
	{
		vector[i]=pedir_valor_vect(i);
	}
}

//mostrar o vetor
void func_mostra(int vector[], int tamanho){
	int i;

		for (i=0; i<tamanho; i++)
		{
			mostra_int(vector[i],i);
		}
}

//pedir valores
int pedir_valor_vect(int n){
	int a;
	printf ("Insira numero %d: ", n+1);
	scanf ("%d", &a);
	return a;
}

//mostra a posicão e o número
void mostra_int (int pos_vect,int i){
	printf ("O %d valor : %d \n",i+1,pos_vect);
}

  

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
36 minutos atrás, Gabriel_Moro disse:

soma=0;

for(i=0;i<tamanho;i++)   // percorre o vetor somando os termos

       soma+=vector

Eu tenho esse código no main () mas não apresenta a soma dos valores.

 

todo o código no main ()

Capturar2.JPG.793cd8c3d504c5f6edd4405a5448cff8.JPG

 

Programa a correr

Capturar.JPG.07288b77b7a2dbdb60248d434b4bb972.JPG

 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Gabriel_Moro disse:

acho que tu esqueceu do printf("Soma: %d", soma);

Yap o printf tem que ser fora do ciclo/laço "for".

 

Hoje estou *****, eu estava a editar um trabalho com 60 páginas a partir da pen e perguntava-me por raios o Microsoft Word bloqueava ao gravar o ficheiro. :(

 

Capturar.JPG.5e3a28b8ff6120b3e68a1c839cdfc90d.JPG

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!