Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Martin96

#1
Programación C/C++ / MODA
13 Octubre 2018, 17:27 PM
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!  ;-)


#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;
}