twodim.c
上传用户:bjtelijie
上传日期:2010-01-01
资源大小:87k
文件大小:1k
源码类别:

数学计算

开发平台:

Visual C++

  1. # include <stdio.h>
  2. void main()
  3. {
  4. int array[16][16];
  5. int i, j, k, m, n;
  6. /* 变量初始化 */
  7. m = 1;
  8. while(m == 1)
  9. {
  10. printf("请输入n(0<n<=15),n是奇数)n");
  11. scanf("%d", &n);
  12. /* 判断n是否是大于0小于等于15的奇数 */
  13. if((n!=0) && (n<=15) && (n%2!=0))
  14. {
  15. printf("矩阵阶数是 %dn", n);
  16. m = 0;
  17. }
  18. }
  19. /* 数组赋初值为0 */
  20. for(i=1; i<=n; i++)
  21. for(j=1; j<=n; j++)
  22. array[i][j] = 0;
  23. /* 建立魔方阵 */
  24. j = n/2 + 1;
  25. array[1][j] = 1;
  26. for(k=2; k<=n*n; k++)
  27. {
  28. i = i - 1;
  29. j = j + 1;
  30. if((i<1) && (j>n))
  31. {
  32. i = i + 2;
  33. j = j - 1;
  34. }
  35. else
  36. {
  37. if(i < 1)
  38. i = n;
  39. if(j > n)
  40. j = 1;
  41. }
  42. if(array[i][j] == 0)
  43. array[i][j] = k;
  44. else
  45. {
  46. i = i + 2;
  47. j = j - 1;
  48. array[i][j] = k;
  49. }
  50. }
  51. /* 输出魔方阵 */
  52. for(i=1; i<=n; i++)
  53. {
  54. for(j=1; j<=n; j++)
  55. printf("%5d", array[i][j]);
  56. printf("n");
  57. }
  58. }