#include <stdio.h>
#include <stdlib.h>
/* faça um programa que leia um valor N e crie dinamicamente um vetor
de N elementos e informe a média, o maior e o menor dos valores fornecidos
pelo usuário. Além disso, antes de finalizar o programa, deve-se liberar a área
de memória alocada. */
int main(int argc, char *argv[]) {
int q, i, n, soma=0, maior=0, menor=0;
float media;
int *p;
printf("Digite a quantidade de elementos: ");
scanf("%i", &q);
p = (int *)malloc(q*sizeof(int));
for(i=1;i<=q;i++){
printf("\nDigite o numero para o indice [%i]: ", i);
scanf("%i", &p[i]);
soma=soma+p[i];
if(p[i] < menor){
menor = p[i];
}else{
if(p[i] > maior){
maior = p[i];
}
}
}
printf("\n");
for(i=1;i<=q;i++){
printf("\nValor do elemento armazenado no indice [%i] = [%i] ", i, p[i]);
}
for(i=1;i<=q;i++){
if(p[i] <= menor){
menor = p[i];
}else{
if(p[i] > maior){
maior = p[i];
}
}
}
media = soma/q;
printf("\n\nA media dos valores eh igual a %.2f", media);
printf("\n\nMenor elemento eh %i", menor);
printf("\nMaior elemento eh %i", maior);
free(p);
return 0;
}
Boa noite!
Gostaria de ajuda para descobrir porque a variável menor está retornando sempre 0.