Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2011, 18:16
Avatar de WizKnight
WizKnight
 
Fecha de Ingreso: noviembre-2010
Ubicación: Maracaibo, Venezuela, Venezuela
Mensajes: 19
Antigüedad: 14 años
Puntos: 1
Información Funcion Diagonal

Hola vengo a pedirles un favor, hice un programa pero el profesor me dice que hay otro metodo y pues no se cual es le pregunte pero no me quiere decir.. La funcion lo que debe hacer es guardar los numeros de un arreglo, en un arreglo de forma diagonal
este es el programa que hice:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. # define t 30
  4. # define r 30
  5.  
  6. void leer(int n,int a[])
  7. {
  8. int i;
  9. printf("\n");
  10. for(i=0;i<n;i++)
  11. {
  12. printf("Escriba un numero: ");
  13. scanf("%d",&a[i]);
  14. }
  15. printf("\n");
  16. }
  17.  
  18. //--------------------------
  19.  
  20. void diagonal(int n,int a[],int m[][t])
  21. {
  22. int d=0;
  23. int i,g;
  24. printf("\nIniciando arreglo\n\n");
  25. for(i=0;i<n;i++)
  26. {
  27. for(g=0;g<n;g++)
  28. {
  29. m[i][g]=0;
  30. printf("%d",m[i][g]);
  31. }
  32. printf("\n");
  33. }
  34. for(g=0,i=0;g<n;g++,i++)
  35. {
  36. m[i][g]=a[d];
  37. d++;
  38. }
  39. }
  40.  
  41. // -----------------------------
  42. void imprimir(int n,int m[][t])
  43. {
  44. int i,g;
  45. printf("\nDiagonal: \n");
  46. for(i=0;i<n;i++)
  47. {
  48. for(g=0;g<n;g++)
  49. {
  50. printf("%d",m[i][g]);
  51. }
  52. printf("\n");
  53. }
  54. }
  55. //-------------------------------
  56.  
  57. main()
  58. {
  59. int n;
  60. printf("Un arreglo de cuantos numeros? :");
  61. scanf("%d",&n);
  62.  
  63. int a[n];
  64. int m[r][t];
  65. leer(n,a);
  66. diagonal(n,a,m);
  67. imprimir(n,m);
  68. }

Ejemplo:
Entrada: 6
Salida: Diagonal:
500000
060000
004000
000700
000080
000009