Ir ao conteúdo
  • Cadastre-se

C# Função que retorna a soma dos elementos de um vetor


Maria_epbn
Ir à solução Resolvido por GBMelkor,

Posts recomendados

Escreva um programa que leia o tamanho e aloque memória para dois vetores reais de mesmo tamanho, leia os dados e preencha os vetores e imprima os vetores.

Chame uma função que receba dois vetores, o tamanho e uma variável ponteiro. a função deve calcular a soma dos elementos do vetor v1 e o produto entre os elementos do vetor v2. a função deve retornar a soma dos elementos de v1. Imprima os valores na main.

 

  •    O meu programa não está aparecendo nenhum erro na hora de compilar, mas quando o programa dá o resultado da soma o valor que está aparecendo é errado.

    

                      ex.:   v1 =  1.0000             2.0000            3.0000

                              Soma dos elementos de v1 = 0.0000

#include <stdio.h>
#include <stdlib.h>

void *SomaProduto (float *vet1, float *vet2, int tam, float *somaelem);

int main()
{

   float *v1, *v2, *somaelem;
  int tam, i;

  printf("Qual o tamanho dos vetores? ");
  scanf("%d", &tam);
 
  

  v1 = (float*)malloc(tam * sizeof(float));
  v2 = (float*)malloc(tam * sizeof(float));

  if(v1==NULL || v2==NULL)
   { printf("\nImpossível alocar memória.\n");
     return 1;
   }

  printf("Lendo vetor 1: \n\n");
 

  for(i=0;i<tam;i++)
  { printf("\n\nElemento [%d]: ", i);
    scanf("%f", (v1+i));
  }

   printf("Lendo vetor 2: \n\n");
 

  for(i=0;i<tam;i++)
  { printf("\n\nElemento [%d]: ", i);
    scanf("%f", (v2+i));
  }

  printf("\n\nImprimindo vetor 1:\n ");
  
  for(i=0;i<tam;i++)
  { printf("\t%f", *(v1+i));
  }

  printf("\n\nImprimindo vetor 2:\n ");
  
  for(i=0;i<tam;i++)
  { printf("\t%f", *(v2+i));
  }


  somaelem = SomaProduto(v1,v2,tam, somaelem);
              printf("\n\nSoma dos elementos do vetor v1 = %f", *somaelem);
              printf("\n\n\n");
}
 
void *SomaProduto (float *vet1, float *vet2, int tam, float *somaelem)
{   float produtoelem;
    int i;

    somaelem = (float*)malloc(tam * sizeof(float));
    *somaelem=0;

    for(i=0; i<tam; i++);
    {  
       *somaelem += *(vet1+i);
    }
    produtoelem=0;
    for(i=0; i<tam; i++)
    { produtoelem = produtoelem * (*(vet2+i));
    }
 
  return (somaelem);
    
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...