siven-siven 发表于 2020-12-11 17:33:29

怎么能看到魔法方法的源码

想知道python魔法方法源码是用python写的吧,在哪能看到源码。

永恒的蓝色梦想 发表于 2020-12-11 18:44:03

不是用 Python 而是用 C 写的。
https://github.com/python/cpython/

风过无痕1989 发表于 2020-12-11 18:55:29

本帖最后由 风过无痕1989 于 2020-12-11 18:56 编辑

C语言的,我这电脑里就有
#include<stdio.h>
#include<stdlib.h>

int array(int n)

{
        int i, j, no, num, max;
        int *mtrx;
        if(n%2 == 0)                        /*n是偶数,则加1使其变为奇数*/
        {
                n = n + 1;
        }
        max = n * n;
        mtrx = (int *)malloc(max + max);      /*为魔方阵分配内存*/
        mtrx = 1;                      /* 将1存入数组*/
        i = 0;                              /*自然数1所在行*/
        j = n / 2;                            /*自然数1所在列*/
/*从2开始确定每个数的存放位置*/
        for(num = 2; num <= max; num++)
        {
                i = i - 1;
                j = j + 1;
                if((num - 1) % n == 0)                /*当前数是n的倍数*/
                {
                        i = i + 2;
                        j = j - 1;
                }
                if(i < 0)                         /*当前数在第0行*/
                {
                        i = n - 1;
                }
                if(j > n - 1)                     /*当前数在最后一列,即n-1列*/
                {
                        j = 0;
                }
                no = i * n + j;                   /*找到当前数在数组中的存放位置*/
      mtrx = num;
        }

/*打印生成的魔方阵*/
        printf("生成的%d-魔方阵为:",n);
        no = 0;
        for(i = 0; i < n; i++)
        {
                printf("\n");
                for(j = 0; j < n; j++)
                {
                        printf("%3d", mtrx);
                        no++;
                }
        }
        printf("\n");
        free(mtrx);
        return 0;
}

int main()

{
        int n;
        printf("请输入n值:");
        scanf("%d", &n);
        array(n);                           /*调用array函数*/
        return 0;
}
页: [1]
查看完整版本: 怎么能看到魔法方法的源码