Ir para conteúdo
Fórum Script Brasil

jujuneos

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre jujuneos

jujuneos's Achievements

0

Reputação

  1. 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); return 0; } Abaixo segue um print do programa sendo executado. Alguém sabe como contornar o problema?
×
×
  • Criar Novo...