Ir para conteúdo

POWERED BY:

Arquivado

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

Brown.

Problema em C

Recommended Posts

Oi pessoal, estou tentando fazer um exercício em C, mais não dar o resultado

esperado, quem poder me ajudar obrigado. É a seguinte questão:

-------------------------------------------------------------------------------------------------

Um programa que leia dois vetores de 10 elementos do tipo real e em seguida, utilizando

uma função, intercale os elementos destes dois vetores em um terceiro vetor de 20 elementos.

Ao final, exiba o novo vetor fora da função (na main).

Obs: a função terá 4 parâmetros, sendo que os 3 primeiros são passados por referência:

- os dois vetores que já foram lidos na main.

- o vetor a ser preenchido e

- um inteiro que representará o tamanho dos vetores lidos.

-------------------------------------------------------------------------------------------------

Eu consegui fazer até aqui:

 

#include<stdio.h>
#include<stdlib.h>
void interc (float *v1, float *v2, float *v3, int n);
main()
{
float vet1[10],vet2[10];
int i;
for(i=0; i<10; i++)
{
printf("informe a posição do primeiro vetor %d\n", i);
scanf("%f", &vet1[i]);
printf("informe a posição do segundo vetor %d\n", i);
scanf("%f", &vet2[i]);
}
interc(vet1,vet2);
system("pause");
}
void interc (float *v1, float *v2, float *v3, int n)
{
int i=1, x;
for(x=0; x<n; x=x+2)
{
v3[x]= v1[i];
v3[x+1] = v2[i];
i= i+1;
}
for(x=1; x<n; x++)
{
printf("%d", v3[x]);

}
printf("\n\n");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja um q eu fiz em Linguagem de Programação I, ta em portugol e tem 2 parametros + da pra ter noçaum do q é pra ser feito:

Prototipação: Função inteiro  Intercala (inteiro VetorA[100], inteiro VetorB[100]);

Inicio
Variaveis: Inteiro: VetorA[100], VetorB[100], VetorC[100], n, m
Escreva ("Digite o numero de indices dos vetores: ");
Leia (n, m)
Para i de 1 até n faça
Escreva("Digite os valores do VetorA["+i+"]");
Leia(VetorA[I]);
Fim_para
Para i de 1 até m faça
Escreva("Digite os valores do VetorB["+i+"]");
Leia(VetorB[i]);
Fim_para
VetorC <- Intercala(VetorA, VetorB)
Para i de 1 até k faça
		Escreva("VetorC["+k"]="+ VetorC[k]
Fim_para

Função inteiro Intercala (inteiro VetorA[100], inteiro VetorB[100])
	Inteiro x[100], i, j, k
	i<-1;
j<-1;
k<-1;
Enquanto (i > n) e (j > m) faça
		Se VetorA[i] < VetorB[j] então
			x[k] <- VetorA[i]
			i <- i+1;
		senão
			x[k]<- VetorB[j]
			j <- j+1;
		Fim_se
		k <- k+1;
Fim_enquanto
Enquanto (i < n) faça
		x[k] <- VetorA[i]
		k <- k+1;
		i <- i+1;
Fim_enquanto
Enquanto (j < m) faça
		x[k]<-VetorB[j]
		k<-k+1;
		j<- j+1;
Fim_enquanto
	Retorna (x);
Fim_função

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu a intenção mais com dois parâmetros eu consegui fazer, não consigo é passar essa função na main

com 4 parâmetros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente fazer sua função intercala assim:

void interc (float v1[], float v2[], float v3[], int tam);
no algoritmo q eu fiz eu crio ele dentro da função, oq você vai fazer é criar ele fora da função e passá-lo como parametro, e o numero inteiro vai definir o tamanho maximo dos vetores!

 

tente fazer e poste seus avanços!

 

[]'s

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.