| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6102 人关注过本帖
标题:请写个矩阵旋转程序
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用世界模型在2012-2-10 21:49:03的发言:

看错了 我以为是旋转矩阵
没错,就是旋转矩阵。

梅尚程荀
马谭杨奚







                                                       
2012-02-10 21:49
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
很复杂么?等一下写个例子给你。

重剑无锋,大巧不工
2012-02-10 21:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這個題目其實挺好練手的,各方面都接觸,但又不至於太難,初學者適合做。就題做題有就題做題的辦法,要從軟件工程的角度考慮,也有一套做法,甚至可以由此比較各種語言的特性。正如我曾經說過的,抱住一個問題解剖麻雀,比什麼都碰一下要強得多。就題做題,問題解決了,就沒有求進步的心態,必定在遇到新問題時不斷求助。

授人以渔,不授人以鱼。
2012-02-10 22:09
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:30 
试试这个例子,希望不要有人和我争论什么输入合法判断之类的东西,请按要求输入数据。
程序代码:
#include<stdio.h>

void rotate(int * a, int n)
{
    int i, j, m, t, dd, d0, d1, d2, d3;
    for(i = 0, m = n - 1; i < m; i++, m--)
    for(j = i; j < m; j++)
    {
        dd = j - i;
        d0 = i * n + j;
        d1 = (m - dd) * n + i;
        d2 = m * n + m - dd;
        d3 = (i + dd) * n + m;
        t = a[d0];
        a[d0] = a[d1];
        a[d1] = a[d2];
        a[d2] = a[d3];
        a[d3] = t;
    }
}

void show(int * a, int n)
{
    int i, j;
    for(i = 0; i < n; i++, putchar('\n'))
    for(j = 0; j < n; printf("%4d", a[i * n + j++]));
}

int main()
{
    int a[100], i, j, n;
    printf("Input Dimension length <= 100 : ");
    scanf("%d", &n);
    for(i = 0; i < n; i++)
    for(j = 0; j < n; j++)
    {
        printf("Input data in postion(%d, %d) : ", i, j);
        scanf("%d", &a[i * n + j]);
    }
    printf("The original array is:\n");
    show(a, n);
    printf("\nThe rotated array is:\n");
    rotate(a, n);
    show(a, n);
    return 0;
}

重剑无锋,大巧不工
2012-02-10 22:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
試一下轉置元素是類對象或含有鏈表式指針數據的矩陣看吧。

授人以渔,不授人以鱼。
2012-02-10 22:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
轉完整數,嘗試寫一個轉任何數據類型矩陣的算法。是不是打算針對無數種數據類型都反覆寫大同小異的代碼?這是任何一個自覺過得去的程序員都應該考慮的問題。

授人以渔,不授人以鱼。
2012-02-10 22:20
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
你连这个也做不到,就不用给我出题了。

重剑无锋,大巧不工
2012-02-10 22:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我沒空跟你鬥嘴,就你這種人家不提醒不知道的貨色,能有多少斤兩,任何一個做現實項目的人都清楚得很。五年編程經驗,得了吧,這種程度,五年都是coder的層次而已。分配點模塊讓你做是可以的,讓你從頭設計一個系統,沒那個水平。

授人以渔,不授人以鱼。
2012-02-10 22:23
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 24楼 beyondyf
m = n - 1; m--;这个好,我当是只知道整体来,除2乘2搞了半天。

梅尚程荀
马谭杨奚







                                                       
2012-02-10 22:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
哇,老大们别发火了,烧了我的帖子 很多新手进不来啦。
求进步,求和谐。

梅尚程荀
马谭杨奚







                                                       
2012-02-10 22:30
快速回复:请写个矩阵旋转程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013103 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved