• Matéria: Informática
  • Autor: caiolemep5wgr9
  • Perguntado 7 anos atrás

Alguém pode me ajudar preciso para amanha !!!


Crie um programa para manipular vetores. O Seu programa deve implementar uma função chamada inverte_vetor, que recebe como parâmetro dois vetores V1 e V2, ambos de tamanho N. A função deve copiar os elementos de V1 para V2 na ordem inversa. Ou seja ,se a função receber V1 = {1,2,3,4,5} ,a função deve copiar os elementos para V2 na seguinte ordem: V2 = {5,4,3,2,1}. Além disso, a função também deve retornar o maior
valor encontrado em V1. A função deve obedecer ao seguinte protótipo:

int inverte_vetor (int *vl, int *v2, int n);

Em seguida, implemente no mesmo modulo outra função chamada multiplica_escalar,
que recebe como parâmetro dois vetores V1 e V2 (ambos de tamanho N), e um número inteiro X. A função deve multiplicar cada um dos elementos de V1 por X e armazenar os resultados em V2.

A função deve obedecer aos seguinte protótipo:

void multiplica_escalar (int *vl, int *v2, int x, int n);

Em seguida crie a função principal do programa utilizando as funções inverte_vetor e multiplica_escalar para inverter um vetor de tamanho 10 fornecido pelo usuário e em seguida multiplicar esse vetor por um escalar também fornecido pelo usuário. Por ultimo , o programa deve exibir o vetor resultante.


Anexos:

Respostas

respondido por: natanlokko25
1

Resposta:

Vou dar a resposta usando a linguagem de programação C

Explicação:

#include <stdio.h>

#include <stdlib.h>

/*Resposta dada por Natan Soares (92) 98146-5148*/

int inverte_vetor (int *v1, int *v2, int n)

{

int i, j,l=n-1, maior = 0, a;

for (i=0;i<n;i++)

{

 //armazenar o maior valor de v1 em 'maior'

 if(v1[i] > maior)

  maior = v1[i];

}

//Ordenando v1 em ordem crescente

for (i=0;i<n;i++)

 for (j=0;j<n;j++)

  if (v1[j]>v1[i])

  {

   a=v1[j];

   v1[j]=v1[i];

   v1[i]=a;

  }

//invertendo o v1 em v2

for (i=0;i<n;i++)

{

 v2[l] = v1[i];

 l--;

}

printf("\n\nImprimindo V1 ordenado\n\n");

for (i=0;i<n;i++)

 printf("%d | ",v1[i]);

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

printf("\n\nImprimindo V2 invertido\n\n");

for (i=0;i<n;i++)

 printf("%d | ",v2[i]);

return maior;

}

void multiplica_escalar (int *v1, int *v2, int x, int n)

{

for (int i=0;i<n;i++)

{

 v2[i] = v1[i]*x;

}

printf("\n\nImprimindo V2 da multiplicação escalar!\n\n");

for (int i=0;i<n;i++)

{

 printf("%d | ", v2[i]);

}

}

int main()

{

int n = 10, vet1[n], vet2[n], maior, x;

for (int i=0;i<n;i++)

{

 printf("Digite um valor para posição %d do vetor: ",i+1);

 scanf("%d",&vet1[i]);

}

printf("\n\nDigite um valor para a multiplicação escalar: ");

scanf("%d",&x);

maior = inverte_vetor(vet1, vet2, n);

multiplica_escalar(vet1,vet2,x,n);

printf("\n\nMaior valor de V1 é %d\n\n\n", maior);

}

Perguntas similares