Galera, estou fazendo um programa de manipulação de vetores, e me deparei com esse problema: eu entro com os valores do vetor, mas quando peço para exibi-los, o programa exibe alguns valores errados, que sempre mudam cada vez que eu executo. Acredito que seja um problema de memória que precisa ser limpa, queria saber como fazer isso em C.
#include<stdio.h>#include<stdlib.h>int funcao(int v[10]){int i, maior, menor, j, prim, ult;int*vet = malloc(10*sizeof(&v));float m=0;//Cálculo da média:for(i =0; i <10; i++)
m = m + v[i];
printf("\nMedia: %.2f", m/10);//Posição do maior:for(i =0; i <10; i++){
maior = v[i];for(j =0; j <10; j++){if(v[j]> maior)
maior = v[j];}}
printf("\nO maior elemento é: %d.\nO endereço de memória é: %d.\n", maior,&maior);//Posição do menor:for(i =0; i <10; i++){
menor = v[i];for(j =0; j <10; j++){if(v[j]< menor)
menor = v[j];}}
printf("\nO menor elemento é: %d.\nO endereço de memória é: %d.\n", menor,&menor);//Endereços da primeira e última posição:for(i =0; i <10; i++){if(i ==0)
prim = v[i];if(i ==9)
ult = v[i];}
printf("\nO endereço da primeira posição do vetor é %d e do último é %d\n",&prim,&ult);
free(v);return*vet;}int main(){int i, v[10], m =0;for(i =0; i <10; i++){
scanf("%d",&v[i]);
m = m + v[i];if(v[i]>(m/10))
v[i]= v[i]-(m/10);}for(i =0; i <10; i++)
printf("%d ", v[i]);
funcao(v);return0;}
Abaixo segue um print do programa sendo executado. Alguém sabe como contornar o problema?
Pergunta
jujuneos
Galera, estou fazendo um programa de manipulação de vetores, e me deparei com esse problema: eu entro com os valores do vetor, mas quando peço para exibi-los, o programa exibe alguns valores errados, que sempre mudam cada vez que eu executo. Acredito que seja um problema de memória que precisa ser limpa, queria saber como fazer isso em C.
Abaixo segue um print do programa sendo executado. Alguém sabe como contornar o problema?
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.