fork download
  1. #include <stdio.h>
  2.  
  3. #define MAX_NUMEROS 10
  4.  
  5. // Prototipos de las funciones
  6. void imprimirNumeros(int arr[], int cantidad);
  7. void imprimirPorEncimaDeLaMedia(int arr[], int cantidad, float media);
  8. void requerirTolerancia(float* tolerancia);
  9. void aplicarTolerancia(int arr[], int cantidad, float media, float tolerancia, int resultado[]);
  10. void imprimirArray(int arr[], int cantidad);
  11.  
  12. int main() {
  13. int numeros[MAX_NUMEROS]; // Array para almacenar los números introducidos
  14. int cantidad = 0; // Número de elementos introducidos
  15. int resultado[MAX_NUMEROS]; // Array para almacenar los valores con tolerancia
  16. int numero;
  17. float media = 0.0;
  18. float suma = 0.0;
  19.  
  20. // Solicitar la entrada de números
  21. printf("Introduce hasta 10 números enteros (teclea -1 para finalizar):\n");
  22.  
  23. while (cantidad < MAX_NUMEROS) {
  24. printf("Introduce el número %d: ", cantidad + 1);
  25. scanf("%d", &numero);
  26.  
  27. if (numero == -1) {
  28. break; // Si el usuario ingresa -1, se detiene la entrada
  29. }
  30.  
  31. // Almacenar el número en el array
  32. numeros[cantidad] = numero;
  33. suma += numero;
  34. cantidad++;
  35. }
  36.  
  37. // Calcular la media
  38. media = suma / cantidad;
  39.  
  40. // Imprimir los números introducidos
  41. printf("\nNúmeros introducidos:\n");
  42. imprimirNumeros(numeros, cantidad);
  43.  
  44. // Imprimir los números por encima de la media
  45. printf("\nNúmeros por encima de la media (%.2f):\n", media);
  46. imprimirPorEncimaDeLaMedia(numeros, cantidad, media);
  47.  
  48. // Solicitar tolerancia
  49. float tolerancia;
  50. requerirTolerancia(&tolerancia);
  51.  
  52. // Aplicar tolerancia y llenar el segundo array
  53. aplicarTolerancia(numeros, cantidad, media, tolerancia, resultado);
  54.  
  55. // Imprimir los resultados
  56. printf("\nArray original con tolerancia aplicada:\n");
  57. imprimirArray(resultado, cantidad);
  58.  
  59. return 0;
  60. }
  61.  
  62. // Función para imprimir los números introducidos y sus posiciones
  63. void imprimirNumeros(int arr[], int cantidad) {
  64. for (int i = 0; i < cantidad; i++) {
  65. printf("Posición %d: %d\n", i, arr[i]);
  66. }
  67. }
  68.  
  69. // Función para imprimir los números por encima de la media y sus posiciones
  70. void imprimirPorEncimaDeLaMedia(int arr[], int cantidad, float media) {
  71. for (int i = 0; i < cantidad; i++) {
  72. if (arr[i] > media) {
  73. printf("Posición %d: %d\n", i, arr[i]);
  74. }
  75. }
  76. }
  77.  
  78. // Función para requerir la tolerancia al usuario
  79. void requerirTolerancia(float* tolerancia) {
  80. printf("\nIntroduce la tolerancia (por ejemplo, 0.3): ");
  81. scanf("%f", tolerancia);
  82. }
  83.  
  84. // Función para aplicar la tolerancia y llenar el array de resultados
  85. void aplicarTolerancia(int arr[], int cantidad, float media, float tolerancia, int resultado[]) {
  86. float rangoInferior = media - (media * tolerancia);
  87. float rangoSuperior = media + (media * tolerancia);
  88.  
  89. printf("\nValores entre %.2f y %.2f que cumplen con la tolerancia:\n", rangoInferior, rangoSuperior);
  90.  
  91. for (int i = 0; i < cantidad; i++) {
  92. if (arr[i] >= rangoInferior && arr[i] <= rangoSuperior) {
  93. resultado[i] = arr[i]; // Copiar el valor si cumple con la tolerancia
  94. } else {
  95. resultado[i] = 0; // Copiar 0 si no cumple con la tolerancia
  96. }
  97. printf("Posición %d: %d\n", i, resultado[i]);
  98. }
  99. }
  100.  
  101. // Función para imprimir un array dado
  102. void imprimirArray(int arr[], int cantidad) {
  103. for (int i = 0; i < cantidad; i++) {
  104. printf("Posición %d: %d\n", i, arr[i]);
  105. }
  106. }
  107.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Introduce hasta 10 números enteros (teclea -1 para finalizar):
Introduce el número 1: Introduce el número 2: Introduce el número 3: Introduce el número 4: Introduce el número 5: Introduce el número 6: Introduce el número 7: Introduce el número 8: Introduce el número 9: Introduce el número 10: 
Números introducidos:
Posición 0: 0
Posición 1: 0
Posición 2: 0
Posición 3: 0
Posición 4: 0
Posición 5: 0
Posición 6: 0
Posición 7: 0
Posición 8: 0
Posición 9: 0

Números por encima de la media (0.00):

Introduce la tolerancia (por ejemplo, 0.3): 
Valores entre 0.00 y 0.00 que cumplen con la tolerancia:
Posición 0: 0
Posición 1: 0
Posición 2: 0
Posición 3: 0
Posición 4: 0
Posición 5: 0
Posición 6: 0
Posición 7: 0
Posición 8: 0
Posición 9: 0

Array original con tolerancia aplicada:
Posición 0: 0
Posición 1: 0
Posición 2: 0
Posición 3: 0
Posición 4: 0
Posición 5: 0
Posición 6: 0
Posición 7: 0
Posición 8: 0
Posición 9: 0