Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Roga en 17 Mayo 2017, 02:48 am



Título: Ayuda en lenguaje c basico con funciones
Publicado por: Roga en 17 Mayo 2017, 02:48 am
Buenas tengo un problemas no quiere entrar en los if`s. Ademas uso funciones porque lo piden en el anunciado de la guia. muchas gracias.
Código
  1. /*Hacer un programa en Lenguaje C que permita cargar dos vectores con cinco números enteros cada uno y determinar lo siguiente: ¿Cuál es el número mayor de los
  2.  dos vectores?*/
  3. #include<stdio.h>
  4. void mayor(int numerosa[2][4]);
  5. int main(){
  6. int vector,vectora,numeros[2][4];
  7. printf("Cargue 2 listas de 5 numeros para definir el mayor de cada uno.\n");
  8. for(vector=0;vector<2;vector++){
  9. printf("\n");
  10. for(vectora=0;vectora<5;vectora++){
  11. printf("Cargue el valor %d de la lista %d:",vectora+1,vector+1);
  12. scanf("%d",&numeros[vector][vectora]);
  13. }
  14. }
  15. mayor(numeros);
  16. printf("\n");
  17. system("pause");
  18. return 0;
  19. }
  20. void mayor(int numerosa[2][4]){
  21. int filas,columnas,mayora,mayorb;
  22. mayora=0;
  23. mayorb=0;
  24. for(filas=0;filas<2;filas++){
  25. for(columnas=0;columnas<5;columnas++){
  26. if(filas==0){
  27. if(numerosa[filas][columnas]>numerosa[filas][columnas]){
  28. mayora=numerosa[filas][columnas];
  29. }
  30. }
  31. if(filas==1){
  32. if(numerosa[filas][columnas]>numerosa[filas][columnas]){
  33. mayorb=numerosa[filas][columnas];
  34. }
  35. }
  36. }
  37. }
  38. printf("El valor mayor de la primera lista es=%d.\nEl valor mayor de la segunda lista es=%d.",mayora,mayorb);
  39. }


Título: Re: Ayuda en lenguaje c basico con funciones
Publicado por: engel lex en 17 Mayo 2017, 02:52 am
Código:
if(numerosa[filas][columnas]>numerosa[filas][columnas])

no entra porque un numero nunca es mayor a si mismo


Título: Re: Ayuda en lenguaje c basico con funciones
Publicado por: Roga en 17 Mayo 2017, 02:57 am
me falto pasar mas codigo  :-(. porque lo modifique y se me olvido modificarlo hasta donde para mi esta bien. pero por falta de conocimiento no me da. gracias :D por comentar. ya vi mi error gracias. ya lo modifico.
Gracias!!!. por ayudarme a ver mi error. al final quedo asi.
Código
  1. /*Hacer un programa en Lenguaje C que permita cargar dos vectores con cinco números enteros cada uno y determinar lo siguiente: ¿Cuál es el número mayor de los
  2.  dos vectores?*/
  3. #include<stdio.h>
  4. void mayor(int numerosa[2][5]);
  5. int main(){
  6. int vector,vectora,numeros[2][5];
  7. printf("Cargue 2 listas de 5 numeros para definir el mayor de cada uno.\n");
  8. for(vector=0;vector<2;vector++){
  9. printf("\n");
  10. for(vectora=0;vectora<5;vectora++){
  11. printf("Cargue el valor %d de la lista %d:",vectora+1,vector+1);
  12. scanf("%d",&numeros[vector][vectora]);
  13. }
  14. }
  15. mayor(numeros);
  16. printf("\n");
  17. system("pause");
  18. return 0;
  19. }
  20. void mayor(int numerosa[2][5]){
  21. int filas,columnas,mayora,mayorb,aux,auxa;
  22. mayora=0;
  23. mayorb=0;
  24. for(filas=0;filas<2;filas++){
  25. for(columnas=0;columnas<5;columnas++){
  26. if(filas==0){
  27. if(columnas==0){
  28. aux=numerosa[filas][columnas];
  29. }
  30. if(columnas>0){
  31. if(aux<numerosa[filas][columnas]){
  32. mayora=numerosa[filas][columnas];
  33. aux=numerosa[filas][columnas];
  34. }
  35. }
  36. }
  37. if(filas==1){
  38. if(columnas==0){
  39. auxa=numerosa[filas][columnas];
  40. }
  41. if(columnas>0){
  42. if(auxa<numerosa[filas][columnas]){
  43. mayorb=numerosa[filas][columnas];
  44. auxa=numerosa[filas][columnas];
  45. }
  46. }
  47. }
  48. }
  49. }
  50. printf("El valor mayor de la primera lista es=%d.\nEl valor mayor de la segunda lista es=%d.",mayora,mayorb);
  51. }

se agradece si me ayudan a optimizarlo.


· No hagas doble post
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Ayuda en lenguaje c basico con funciones
Publicado por: engel lex en 17 Mayo 2017, 04:06 am
para optimiarlo, cambia aux a 0 si son numeros solo positivos o al minimo  si son con signo así te ahorras los condidicionales comumna == y columna >



en lugar de usar mayora y mayorb, usa num_mayor[2] (coloqué num para uqe no no coincida con el nombre de la funcion), así no necesitas repetir el proceso, sino que accedes de una vez con el valor de filas