2) Crie um programa para manipular vetores. O seu programa deve implementar uma função que receba um vetor de inteiros V e retorne um outro vetor de inteiros alocado dinamicamente com todos os valores de V que estejam entre o valor mínimo e máximo (que também são passados como parâmetro para a função).
A função deve obedecer a o seguinte protótipo: int* valores_entre (int*v, int n, int min, int max, int qtd);
A função recebe: v: vetor de números inteiros; n: a quantidade de elementos do vetor v; min: valor mínimo a ser buscado; max: valor máximo a ser buscado;
A função deve: Verificar a quantidade de elementos do vetor que sejam maiores do que min e menores que max; Caso a quantidade seja maior do que 0 (zero), alocar dinamicamente uma área do exato tamanho necessário para armazenar os valores; Copia os elementos do vetor que sejam maiores do que min e menores que max para a área alocada dinamicamente.
A função retorna: O endereço da área alocada dinamicamente, preenchida com os números maiores do que min e menores que max, ou NULL, caso essa relação de números não tenha sido criada; A quantidade de números carregados na área alocada dinamicamente, através do parâmetro qtd.
Em seguida, crie a função principal do programa para inicializar um vetor de inteiros, exibir esses valores na tela e pedir para o usuário digitar o valor mínimo e máximo a ser buscado. Em seguida o programa deverá chamar a função valores_entre e exibir na tela os valores resultantes. Lembre-se de exibir uma mensagem de erro caso nenhum valor seja encontrado. Não se esqueça de liberar a memória alocada dinamicamente.
____________ CODIGO _______________
#include<stdio.h>
#include<stdlib.h>
int *valoresentre(int *v,int min,int max,int qtd,int n,int *v2);
main(){
int n;
printf(" informe o tamanho do seu vetor: ");
scanf("%i",&n);
int *v=(int*)malloc(n*sizeof(int));
for(int i=0;i<n;i++){
int vetor[n];
printf(" informe os numeros: \n ");
scanf("%i",&vetor);
}
int qtd=0;
for(int i=0;i<n;i++){
qtd++;
}
// esta dando erro nessa linha
}
int *valoresentre(int *v,int min,int max,int qtd,int n){
if(qtd>0){
int z=0;
int *v2;
v2= (int*)malloc(qtd*sizeof(int));
for(int i=0;i<n;i++){
if(v>min&&v<max){
v2[z]=v;
z++;
}
else{ printf(" não existe numero nesse intervalo ");}
}
}
Pergunta
luizotaavio
VOU DEIXAR AQUI A PERGUNTA.
2) Crie um programa para manipular vetores. O seu programa deve implementar uma função que receba um vetor de inteiros V e retorne um outro vetor de inteiros alocado dinamicamente com todos os valores de V que estejam entre o valor mínimo e máximo (que também são passados como parâmetro para a função).
A função deve obedecer a o seguinte protótipo: int* valores_entre (int*v, int n, int min, int max, int qtd);
A função recebe: v: vetor de números inteiros; n: a quantidade de elementos do vetor v; min: valor mínimo a ser buscado; max: valor máximo a ser buscado;
A função deve: Verificar a quantidade de elementos do vetor que sejam maiores do que min e menores que max; Caso a quantidade seja maior do que 0 (zero), alocar dinamicamente uma área do exato tamanho necessário para armazenar os valores; Copia os elementos do vetor que sejam maiores do que min e menores que max para a área alocada dinamicamente.
A função retorna: O endereço da área alocada dinamicamente, preenchida com os números maiores do que min e menores que max, ou NULL, caso essa relação de números não tenha sido criada; A quantidade de números carregados na área alocada dinamicamente, através do parâmetro qtd.
Em seguida, crie a função principal do programa para inicializar um vetor de inteiros, exibir esses valores na tela e pedir para o usuário digitar o valor mínimo e máximo a ser buscado. Em seguida o programa deverá chamar a função valores_entre e exibir na tela os valores resultantes. Lembre-se de exibir uma mensagem de erro caso nenhum valor seja encontrado. Não se esqueça de liberar a memória alocada dinamicamente.
____________ CODIGO _______________
#include<stdio.h>
#include<stdlib.h>
int *valoresentre(int *v,int min,int max,int qtd,int n,int *v2);
main(){
int n;
printf(" informe o tamanho do seu vetor: ");
scanf("%i",&n);
int *v=(int*)malloc(n*sizeof(int));
for(int i=0;i<n;i++){
int vetor[n];
printf(" informe os numeros: \n ");
scanf("%i",&vetor);
}
int qtd=0;
for(int i=0;i<n;i++){
qtd++;
}
// esta dando erro nessa linha
}
int *valoresentre(int *v,int min,int max,int qtd,int n){
if(qtd>0){
int z=0;
int *v2;
v2= (int*)malloc(qtd*sizeof(int));
for(int i=0;i<n;i++){
if(v>min&&v<max){
v2[z]=v;
z++;
}
else{ printf(" não existe numero nesse intervalo ");}
}
}
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.