鱼C论坛

 找回密码
 立即注册
查看: 1753|回复: 2

[已解决]怎么能看到魔法方法的源码

[复制链接]
发表于 2020-12-11 17:33:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想知道python魔法方法源码是用python写的吧,在哪能看到源码。
最佳答案
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[n / 2] = 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[no] = num;
        }

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

int main()

{
        int n;
        printf("请输入n值:");
        scanf("%d", &n);
        array(n);                             /*调用array函数*/
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-11 18:44:03 | 显示全部楼层
不是用 Python 而是用 C 写的。
https://github.com/python/cpython/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[n / 2] = 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[no] = num;
        }

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

int main()

{
        int n;
        printf("请输入n值:");
        scanf("%d", &n);
        array(n);                             /*调用array函数*/
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 21:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表