问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求救:C语言 编程高手进!!

发布网友 发布时间:2023-08-25 12:23

我来回答

2个回答

热心网友 时间:2024-02-12 04:12

基本上,这需要先定义一个二维数组(矩阵)
matrix[10][10]

然后获得用户输入n(n<10),可以用这样的方式获得
int n;
printf("Please input n(n<%d): ", 10);
scanf("%d", &n);

那到n之后我们开始填充matrix,过程是这样
先把起点定在1,1位置,然后先向右填,填到1,n处,转弯,向下填,到了n,n处,再转为向上。。。。这样一直旋转的填下去,直到填入的数字是n*n,这也就意味着填写结束了

最后,输出matrix就是了。

先试试吧,有问题再补充上来。

其实代码偶已经做好了,只是不想简单的授人以鱼,希望你能体会偶的这番用心^_^

加油!
----------------------------------------------------------------------
这么快就做出来啦,不错嘛^_^

下面是我的,这里分享给大家
-----------------------------------------------------
#include <stdio.h>
//Up,Down,Left,Right
#define U 'U'
#define D 'D'
#define L 'L'
#define R 'R'

const int MAX = 10;

int main(int argc, char *argv[]){
    int matrix[MAX][MAX];
    int n, x, y, k;
    char direction; //Up,Down,Left,Right

    // get input
    printf("Please input n(n<%d): ", MAX+1);
    scanf("%d", &n);

    // invalid input
    if(n>MAX || n<1) return -1;

    // initializations
    for (y=0;y<n;y++)
        for (x=0;x<n;x++)
            matrix[x][y]=0;
    for (y=n;y<MAX;y++)
        for (x=n;x<MAX;x++)
            matrix[x][y]=-1;

    x=y=k=0;
    direction = R;

    // build the matrix
    while(1){
        if (matrix[x][y]==0){
            matrix[x][y]=++k;
            switch (direction){
                case U:y--;break;
                case D:y++;break;
                case L:x--;break;
                case R:x++;break;
                default:break;
            }
        }else{
            switch (direction){
                case U:direction=R;y++;x++;break;
                case D:direction=L;y--;x--;break;
                case L:direction=U;y--;x++;break;
                case R:direction=D;y++;x--;break;
                default:break;
            }
        }

        // finished
        if (k==n*n) break;
    }

    // output
    for (y=0;y<n;y++){
        for (x=0;x<n;x++)
            printf("%3d", matrix[x][y]);
        printf("\n");
    }

    // exit with no error
    return 0;
}
-----------------------------------------------------

此外,对于楼主一边说“大家可以把自己的做法写下来哈,大家一起交流一哈!”一边并未给出自己做法的举动,偶感到十分费解。。。。

热心网友 时间:2024-02-12 04:12

// It is so easy. Just use five FOR sentences with high efficiency and simplest.
void fun(int **p, unsigned char n) // create a screw matrix with n
{ // return by pointer p
unsigned char k, i, l = (n+1)/2;
int c = 1;
p[l-1][l-1] = n * n;
for(k=0; k<l; k++, n-=2)
{
for(i=0;i<n-1;i++) p[k][k+i]=c++;
for(i=0;i<n-1;i++) p[k+i][k+n-1]=c++;
for(i=n-1;i>0;i--) p[k+n-1][k+i]=c++;
for(i=n-1;i>0;i--) p[k+i][k]=c++;
}
} // end of fun
// You can write a main function to test it, which is so simple even without using one IF sentence.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 各位高手C语言找不到错误,谁给看看 c语言题目(我的代码哪里错了?看图,急): 给定一个N行N列的二维整数矩阵... c语言,帮我看看输入矩阵哪错了, 重庆艾迪维尔科技有限公司怎么样? 喜隆多内保用站岗吗 广东省考笔试科目 日上东海面,雌鸡唱三遍,是什么生肖? 日上东海面,雄鸡唱三遍 是指什么? 我想问一下日上东海面雄鸡唱三遍是什么生肖 QQ飞车三人名 qq飞车姐妹名字 撒酒疯儿是成语吗 撒酒疯儿是什么意思 景泰中学小升初的录取分数线 甘肃省2012景泰县中考分数什么时候下来 修冰柜盘铜方法 四门冰柜冷冻盘管方法 便捷冰柜盘管方法 容声冰柜盘管方法 怪物猎人gu8星龙识船怎么出龙识究极太刀 一道C语言题!请帮忙解决一下!!急,要考试了!!谢谢 ...哪位大佬来帮我解答一下,感谢,这是c语言的题目? c语言作业求救求解答 73年和76年财运相合吗? 如果被封了那QQ音乐上的歌怎么办? 注销了QQ音乐号能下掉吗? 如果注销的在15天内登录但是登录未成功,还会注销吗? 注销以后15天内重新登陆还梦想注销吗? 最便宜的墙板多少钱一平方 为什么换了个手机个手机就登录不上去验证也也验证不到? 漱潄这两个是什么字 注销手机号码还能重新注册吗 注销了还能重新申请吗 注销手机号码还能重新注册吗 怎么使用假牙清洁片 同事拥有哪些特质,才会让你觉得和他相处愉快并愿意一直和他共事呢? 这种款式的鞋子男的可以穿吗? 什么样性格的同事会让你特别想和他深入交往?为什么呢? 职场上,你喜欢和怎样的人相处呢? 蓝色吊带裙优雅别致,这种款式的裙子容易驾驭吗?