Ir ao conteúdo
  • Cadastre-se
Maria_epbn

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

Recommended Posts

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);
    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, Maria_epbn disse:

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

 

Ponto e vírgula após o for, no laço de soma.

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×