| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1685 人关注过本帖, 1 人收藏
标题:无聊的时候出道简单题,看看你们学的好不好
只看楼主 加入收藏
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
结帖率:81.82%
收藏(1)
已结贴  问题点数:40 回复次数:26 
无聊的时候出道简单题,看看你们学的好不好
矩阵左转90°:
例:
转置前:
     1 2 3
     4 5 6
     7 8 9
转置后:
     3 6 9
     2 5 8
     1 4 7
提示:(先看情况,再做决定是否要提示)
程序能有延展性,即:给一个n*n矩阵,都能实现矩阵左转90°

[ 本帖最后由 pcbaichi 于 2011-8-21 13:14 编辑 ]
搜索更多相关主题的帖子: 无聊的时候 
2011-08-21 11:56
Begin2011
Rank: 2
等 级:论坛游民
帖 子:60
专家分:61
注 册:2011-6-7
收藏
得分:3 
还没有看到这个地方来
还刚开始
还在顺序结构这一章(谭浩强的c语言程序设计第三版)
2011-08-21 12:25
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:3 
矩阵中心为旋转中心
x' = -y
y' = x
区分奇数和偶数阶就好

[ 本帖最后由 voidx 于 2011-8-21 12:38 编辑 ]
2011-08-21 12:35
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
1 2 3
4 5 6
7 8 9   
 
3 6 9
2 5 8
1 4 7

(0, 0) -> (2, 0)
(0, 1) -> (1, 0)
(0, 2) -> (0, 0)
(1, 0) -> (2, 1)
(1, 1) -> (1, 1)
(1, 2) -> (0, 1)
(2, 0) -> (2, 2)
(2, 1) -> (1, 2)
(2, 2) -> (0, 2)
程序代码:
#include <stdio.h>
#include <string.h>

int main(void)
{
    int array[3][3] = {1, 2, 3, 4, 5, 6 ,7 ,8, 9}, tmp[3][3];
    int i, j;
   
    for(i = 0; i < 3; i++)
        for(j = 0; j < 3; j++)
            tmp[2 - j][i] = array[i][j];
   
    memcpy(array, tmp, sizeof(array));
   
    for(i = 0; i < 3; i++)
        for(j = 0; j < 3 || !printf("\n"); j++)
            printf("%d ", array[i][j]);
           
    return 0;
}
/* Output:
3 6 9
2 5 8
1 4 7
*/



收到的鲜花
  • pcbaichi2011-08-21 14:45 送鲜花  10朵   附言:第一名+50分
  • pcbaichi2011-08-21 14:45 送鲜花  10朵  
  • pcbaichi2011-08-21 14:46 送鲜花  10朵  
  • pcbaichi2011-08-21 14:46 送鲜花  10朵  
  • pcbaichi2011-08-21 14:46 送鲜花  10朵  

My life is brilliant
2011-08-21 13:03
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:0 
回复 4楼 lz1091914999
不错不错,有赏,如果程序能有普适性就完美了

免费赠送河蟹一只
2011-08-21 13:10
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:0 
回复 3楼 voidx
你可以试试,不然就是方法再好也只是纸上谈兵

免费赠送河蟹一只
2011-08-21 13:12
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:3 
借上面大侠的程序完善下
程序代码:
#include<stdio.h>
#include<string.h>

#define N 4

int main(int argc,char *argv[])
{
    int a[N][N],temp[N][N];
    int i,j;

    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);

    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
              temp[N-1-j][i]=a[i][j];

    memcpy(a,temp,sizeof(a));

    for(i=0;i<N;i++)
        for(j=0;j<N || !printf("\n");j++)
            printf(" %d",a[i][j]);
    return 0;
}
收到的鲜花
  • pcbaichi2011-08-21 14:47 送鲜花  1朵   附言:希望有自己的东西,哪怕错了也没关系
2011-08-21 13:50
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
不过这个程序转置的话 如果数字大的话 连中间的也转了 不知道原意是否如此
2011-08-21 13:55
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:3 
程序代码:
#define N 3
int a[N][N],i,j,n=0;
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
{a[i][j]=++n;
printf("%5d",a[i][j]);
}
printf("\n");}
printf("\n");
printf("\n");
for(i=N-1;i>=0;i--)
{for(j=0;j<N;j++)
printf("%5d",a[j][i]);
printf("\n");
}
收到的鲜花
  • pcbaichi2011-08-21 14:50 送鲜花  10朵   附言:第二名+45分
  • pcbaichi2011-08-21 14:50 送鲜花  10朵  
  • pcbaichi2011-08-21 14:50 送鲜花  10朵  
  • pcbaichi2011-08-21 14:50 送鲜花  10朵  
  • pcbaichi2011-08-21 14:51 送鲜花  5朵  
2011-08-21 14:01
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
仔细看看,原来是我想多了

程序代码:
#include <stdio.h>

int main(int argc, char* argv[]) {
    int a[100][100] = {0}, m, n, i, j;
    printf("How many columns and rows does the matrix have? ");
    scanf("%d %d", &m, &n);
    printf("Input the matrix, seperate the elements with ' '\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    printf("\nThe matrix after rotated 90 degrees conter-clockwise is:\n");
    for (j = m - 1; j >= 0; j--) {
        for (i = 0; i < n; i++) {
            printf("%2d", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
收到的鲜花
  • pcbaichi2011-08-21 14:45 送鲜花  10朵  
2011-08-21 14:17
快速回复:无聊的时候出道简单题,看看你们学的好不好
数据加载中...
 
   



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

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