[ Foro de C ]

Ejercicio

27-Feb-2023 18:27
Invitado (Lucas)
1 Respuestas

IMPORTANTE: solo utilizar las estructuras: “if”,
“while”, “for”.
1) Realizar un programa en C que solicite al usuario
que ingrese 10 valores, los guarde en una lista y luego
los ordene de menor a mayor. La nueva lista debe contener
los valores ordenados y debe mostrarse por pantalla.

2)  Agregarle al ejercicio anterior qué, en el caso de que algún número de la
lista se repita, el programa debe mostrar por pantalla el número que se repite y cuantas veces se repite.

3) Finalmente, el ejercicio anterior, debe crear una nueva lista en
la que los números repetidos figuren una sola vez.


14-Mar-2023 21:33
Invitado (Alejandro Andrade)

Aquí te proporciono el código para los tres ejercicios solicitados:

#include <stdio.h>

int main() {
   int lista[10];
   int i, j, temp;
   int repetidos[10] = {0};

   // Pedir al usuario que ingrese 10 valores y guardarlos en la lista
   for (i = 0; i < 10; i++) {
       printf("Ingrese el valor #%d: ", i+1);
       scanf("%d", &lista[i]);
   }

   // Ordenar la lista de menor a mayor
   for (i = 0; i < 10; i++) {
       for (j = i+1; j < 10; j++) {
           if (lista[i] > lista[j]) {
               temp = lista[i];
               lista[i] = lista[j];
               lista[j] = temp;
           }
       }
   }

   // Mostrar la lista ordenada
   printf("\nLa lista ordenada es: ");
   for (i = 0; i < 10; i++) {
       printf("%d ", lista[i]);
   }

   // Encontrar números repetidos y contar cuántas veces se repiten
   for (i = 0; i < 10; i++) {
       for (j = i+1; j < 10; j++) {
           if (lista[i] == lista[j]) {
               repetidos[i]++;
           }
       }
   }

   // Mostrar los números repetidos y cuántas veces se repiten
   printf("\n\nLos numeros repetidos son:");
   for (i = 0; i < 10; i++) {
       if (repetidos[i] > 0) {
           printf(" %d (se repite %d veces)", lista[i], repetidos[i]+1);
       }
   }

   // Crear una nueva lista sin números repetidos
   int nueva_lista[10];
   int indice_nueva_lista = 0;
   for (i = 0; i < 10; i++) {
       if (repetidos[i] == 0) {
           nueva_lista[indice_nueva_lista] = lista[i];
           indice_nueva_lista++;
       }
   }

   // Mostrar la nueva lista sin números repetidos
   printf("\n\nLa nueva lista sin numeros repetidos es: ");
   for (i = 0; i < indice_nueva_lista; i++) {
       printf("%d ", nueva_lista[i]);
   }

   return 0;
}

Este programa utiliza una estructura for para pedir al usuario que ingrese los 10 valores y guardarlos en una lista. Luego, se utiliza otra estructura for anidada para ordenar la lista de menor a mayor.

Después, se utiliza otra estructura for anidada para encontrar los números repetidos y contar cuántas veces se repiten.

Luego, se utiliza otra estructura for para crear una nueva lista sin números repetidos y finalmente se muestra por pantalla la lista ordenada, los números repetidos y la nueva lista sin números repetidos.






(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.)