[ Foro de C ]

Problema en c impares y pares en dos arreglos

27-Feb-2021 00:44
gonzalo rivera
2 Respuestas

1- ingresar 16 numeros tipo entero por teclado.
2- separar pares e impares en dos vectores diferentes y mostrarlos en pantall. solo debera ajustarse a la cantidad de numeros pares o impares que hayan sido ingresados desde el vector general ( entre 0 y 16)
3- calcular promedio de los vectores "par, impar y general" y mostrarlos en pantalla.
4- determinar el valor mayor y el menor del vector general y mostrar en pantalla el numero y las posiciones en las que fueron ingresados.
5- ordenar el vector general de menor a mayor y mostrarlo en pantalla.
6- salir

Lo que voy haciendo es:
int main(int argc, char *argv[]) {

int num[16], opc, par=0, impar=0, i=0, j=0;
int parv[par], imparv[impar];
int aux = 0, auxp=0, auxi=0;

do{
printf("\n\n1.Ingresar 16 numeros.\n");
printf("2.Mostrar pares e impares.\n");
printf("3.Promedio de pares impares y general.\n");
printf("4.Valores mayores y menores.\n");
printf("5.Numeros ordenados de menor a mayor\n");
printf("6.Salir\n\n");
scanf("%i", &opc);

switch(opc){

case 1:

for( i=0; i<16; i++){
printf("\nNro %i: ", i+1);
scanf("%i", &num[i]);

if(num[i]%2==0){
par++;

}else{
impar++;
}

}


for(i=0;i<16;i++){



if(num[i]%2!=0){
imparv[auxi]=num[i];
auxi++;
}


}



break;

case 2:


printf("Numeros pares: \n\n");




for(i=0;i<par;i++){
printf("%, ", parv[i]);
}




printf("\n\nNumeros impares: \n\n");





for(i=0;i<impar;i++){
printf("%, ", imparv[i]);
}



break;
case 3:
break;
case 4:
break;
case 5:
break;
}











}while(opc !=6);







return 0;
}


27-Feb-2021 01:43
Nacho Cabanes (+83)

Esta línea es incorrecta : ambos arrays pasarán a tener tamaño 0:

 int parv[par], imparv[impar];


27-Feb-2021 17:36
Invitado (adrian)

hola gonzalo

te paso una solución posible por si te sirve alguna idea
no he visto que ponga nada de un menú, así que no lo
he puesto

https://www.onlinegdb.com/H1raXeufd

saludos ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)