Brown. 1 Denunciar post Postado Abril 14, 2008 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
quitZAUMMM 18 Denunciar post Postado Abril 23, 2008 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
Brown. 1 Denunciar post Postado Abril 24, 2008 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
quitZAUMMM 18 Denunciar post Postado Abril 24, 2008 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