Hola, tengo un problema tratando de crear un programa en Cque lea multimodas, dado que al leer cuando se repiten las modas, lo hace muy bien, pero cuando no hay moda, me las lee a todas; es decir: ingreso 1,2,3,4,5 y me tira como moda 1,2,3,4,5 en vez de tirarme un NO HAY MODA. Si me pudieran ayudar a encontrar en qué estoy fallando se los agradecería!
Código [Seleccionar]
#include <stdio.h>
int main() {
int i,l,j,aux=0;
printf("Ingrese la cantidad de números que desea ingresar:");
scanf("%d",&l);
int v[l],c[l],MODA[l];
printf("Ingrese los números:");
for(i=0;i<l;i++){
scanf("%d",&v[i]);
}
for(i=0; i<(l-1); i++){
for(j=i+1; j<l; j++) {
if(i!=j && v[i]==v[j]){
{aux=v[j];
v[j]=v[i];
v[i]=aux;}
}
}
}
//ARREGLO DE MODA EN 1
for(i=0;i<l;i++){
MODA[i]=0;
}
/* COMPARACION */
for (i=0;i<(l-1);i++){
for(j=i+1;j<l;j++){
if(v[i]==v[j]){
MODA[i]=MODA[i]+1;
}
}
}
for (i=0;i<l;i++){
c[i]=MODA[i];
}
for (i=0;i<(l-1);i++){
for(j=i+1;j<l;j++){
if(MODA[j]<MODA[i]){
aux=MODA[j];
MODA[j]=MODA[i];
MODA[i]=aux;
}
}
}
for (i=0;i<l;i++){
if(c[i]==1){
aux++;
}
}
if(MODA[l-1]==MODA[l-2]){
printf("Las modas son:\n");
for(i=0;i<l;i++){
if(MODA[l-1]==c[i]){
printf("%i\n",v[i]);
}
}
}
else {
if(MODA[l-1]!=MODA[l-2]){
printf("Las modas son:\n");
for(i=0;i<l;i++){
if((MODA[l-i]==c[i]) && aux<1){
printf("%i",v[i]);
}
}
}
else {
if (aux==l){
printf("No hay moda.");
}
}
}
return 0;
}