Ir ao conteúdo

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


Ir à solução Resolvido por GBMelkor,

Posts recomendados

Postado

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

 

  • Solução
Postado
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

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!