elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda errores en codigo en lenguaje c.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda errores en codigo en lenguaje c.  (Leído 6,718 veces)
Roga

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Ayuda errores en codigo en lenguaje c.
« Respuesta #10 en: 2 Junio 2017, 02:19 am »

Gracias! Asi quedo el codigo final.
Código
  1. /*Cargar un vector de “n” posiciones con numero enteros, a partir de este crear 2 vectores; uno con los números pares y el otro con los numero impares,
  2. además decir cuál de los vectores es más grande y el promedio de los elementos en cada vector.*/
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. void crear(int numerosa[],int n);
  6. int main(){
  7. int vector,n;
  8. printf("Cargue 1 lista para crear 2 nuevas con los numeros pares e impares y decir cual vector es mas grande y el promedio de ambos.");
  9. printf("\nIngrese el numero de valores que desee cargar:");
  10. scanf("%d",&n);
  11. int *numerosa=malloc(sizeof(int)*n);
  12. while(n<=0){
  13. printf("\nValor invalido. Ingrese de nuevo.\nIngrese el numero de valores que desee cargar:");
  14. scanf("%d",&n);
  15. int *numerosa=malloc(sizeof(int)*n);
  16. }
  17. printf("\nLista 1.\n\n");
  18. for(vector=0;vector<n;vector++){
  19. printf("Ingrese el valor %d:",vector+1);
  20. scanf("%d",&numerosa[vector]);
  21. }
  22. crear(numerosa,n);
  23. printf("\n\n");
  24. system("pause");
  25. return 0;
  26. }
  27. void crear(int numerosa[],int n){
  28. int vector,pares,impares,aux,y;
  29. float promedioa,promediob,promedioc,suma;
  30. char *mayor;
  31. promedioa=0;
  32. promediob=0;
  33. promedioc=0;
  34. aux=0;
  35. pares=0;
  36. impares=0;
  37. //contabilizar pares e impares
  38. for(vector=0;vector<n;vector++){
  39. y=numerosa[vector]%2;
  40. if(y==0){
  41. pares++;
  42. }
  43. else{
  44. impares++;
  45. }
  46. }
  47. int *numerosb=malloc(sizeof(int)*pares);
  48. int *numerosc=malloc(sizeof(int)*impares);
  49. //crear 2 y 3
  50. pares=0;
  51. impares=0;
  52. for(vector=0;vector<n;vector++){
  53. y=numerosa[vector]%2;
  54. if(y==0){
  55. numerosb[pares]=*(numerosa+vector);
  56. pares++;
  57. }
  58. else{
  59. numerosc[impares]=*(numerosa+vector);
  60. impares++;
  61. }
  62. }
  63. // mayor
  64. if(pares>impares){
  65. char p[]={'p','a','r'};
  66. mayor=p;
  67. }
  68. if(pares<impares){
  69. char i[]={'i','m','p','a','r'};
  70. mayor=i;
  71. }
  72. if(pares==impares){
  73. char ni[]={'n','i','n','g','u','n','a'};
  74. mayor=ni;
  75. }
  76. //el promedio vector a
  77. suma=0;
  78. for(vector=0;vector<n;vector++){
  79. suma+=numerosa[vector];
  80. }
  81. promedioa=(suma/n);
  82. //el promedio vector b
  83. if(pares>0){
  84. suma=0;
  85. for(vector=0;vector<pares;vector++){
  86. suma+=numerosb[vector];
  87. }
  88. promediob=(suma/pares);
  89. }
  90. //el promedio vector c
  91. if(impares>0){
  92. suma=0;
  93. for(vector=0;vector<impares;vector++){
  94. suma+=numerosc[vector];
  95. }
  96. promedioc=(suma/impares);
  97. }
  98. //imprimir
  99. if(n>0){
  100. printf("\n\nLista 1\t\tLista 2\t\tLista 3");
  101. for(vector=1;vector<=n;vector++){
  102. if(vector<=pares&&vector<=impares){
  103. printf("\n%d\t\t%d\t\t%d",numerosa[vector-1],numerosb[vector-1],numerosc[vector-1]);
  104. }
  105. if(vector>pares&&vector<=impares){
  106. printf("\n%d\t\t\t\t%d",numerosa[vector-1],numerosc[vector-1]);
  107. }
  108. if(vector<=pares&&vector>impares){
  109. printf("\n%d\t\t%d\t\t\t",numerosa[vector-1],numerosb[vector-1
  110. ]);
  111. }
  112. if(vector>pares&&vector>impares){
  113. printf("\n%d\t\t\t\t\t\t",numerosa[vector-1]);
  114. }
  115. }
  116. printf("\nPromedio.\n%.1f\t\t%.1f\t\t%.1f",promedioa,promediob,promedioc);
  117. if(*mayor=='p'||*mayor=='i'){
  118. printf("\n\nLa lista mas larga creada es la %s.",mayor);
  119. }
  120. else{
  121. printf("\n\nLa lista mas larga creada es %s.",mayor);
  122. }
  123. }
  124. free(numerosa);
  125. free(numerosb);
  126. free(numerosc);
  127. }

aprendi con este ejercicio malloc y free. Y calcular promedio de ese modo. muchas gracias a todos.


« Última modificación: 4 Junio 2017, 19:03 pm por Roga » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Errores con el código de una calculadora simple
Programación C/C++
petrusqui 7 4,721 Último mensaje 6 Marzo 2012, 02:46 am
por rir3760
Código de errores SMTP
Dudas Generales
4ndr3s19 1 2,402 Último mensaje 14 Mayo 2016, 02:29 am
por engel lex
Necesito ayuda con mi código marca errores que no comprendo
Programación C/C++
Yaredsf 4 2,361 Último mensaje 26 Noviembre 2018, 07:20 am
por AlbertoBSD
El lenguaje de programación no influye en los errores del código
Noticias
wolfbcn 1 1,345 Último mensaje 1 Febrero 2019, 22:04 pm
por Serapis
Ayuda con un codigo (cualquier lenguaje)
Programación C/C++
Pech 0 4,089 Último mensaje 1 Noviembre 2022, 23:09 pm
por Pech
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines