| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1685 人关注过本帖, 1 人收藏
标题:无聊的时候出道简单题,看看你们学的好不好
只看楼主 加入收藏
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
收藏
得分:3 
新手求教!
程序代码:
#include<stdio.h>
#include<stdlib.h>
void out(int (*a)[100],int n)
     {int i,j;
      printf("%d阶方阵:\n",n);
      for(i=0;i<n;i++)
      { putchar('\n');
          for(j=0;j<n;j++)
             printf("%4d",a[i][j]);
      }
         putchar('\n');     
     }
void main(void)
{int n,i,j,temp,m,a[100][100];

 printf("请输入你所要处理的方阵的阶数n=");

 scanf("%d",&n);

 printf("输入方阵:\n");

 for(i=0;i<n;i++)
     {printf("第%d行:",i+1);
      for(j=0;j<n;j++)
          scanf(" %d",&a[i][j]);
     }

 out(a,n);

 for(i=0;(i+1)*2<=n;i++)
      {
       for(j=i;j<(n-i-1);j++)
          {  m=n-1-i;
             temp=a[i][j];
             a[i][j]=a[j][m];
             a[j][m]=a[m][n-1-j];
             a[m][n-1-j]=a[n-1-j][i];
             a[n-1-j][i]=temp;
             
          }
      }

 out(a,n);
}

有什么错误望大家批评指正,谢谢!

[ 本帖最后由 饭桶 于 2011-8-22 11:48 编辑 ]

人得一生得奋斗!
2011-08-22 11:45
zhm59511
Rank: 2
等 级:论坛游民
帖 子:6
专家分:13
注 册:2011-3-8
收藏
得分:3 
先对矩阵转置
然后再把a[1][]和a[3][]交换
n*n矩阵的话就对
while(i<j)
{
   a[i][]<-->a[j][]; //是a[i]
    i++;
    j++;
}
2011-08-22 22:03
倒霉
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-8-22
收藏
得分:3 
二维数组 对我这菜鸟来说有些挑战
2011-08-22 23:20
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:3 
无意瞎弄的,先行列互换,然后列逆序。
#include<stdio.h>
#define N 4
main()
{
    int i,j,a[N][N],b[N][N],t;
    printf("input a:\n");
     /*数组输入*/
    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=N-1;j>=0;j--)
                b[j][i]=a[i][j];   
            /*列逆序*/   
            for(i=0;i<N;i++)        
                for(j=0;j<N/2;j++)
                {
                    t=b[j][i];
                    b[j][i]=b[N-1-j][i];
                    b[N-1-j][i]=t;
                }
                /*数组输出*/
            for(i = 0; i < N; i++)
        for(j = 0; j < N || !printf("\n"); j++)
            printf("%d ", b[i][j]);
}
收到的鲜花
  • pcbaichi2011-08-24 09:10 送鲜花  10朵   附言:很好,就是这样
  • pcbaichi2011-08-24 09:10 送鲜花  10朵  
  • pcbaichi2011-08-24 09:10 送鲜花  10朵  
  • pcbaichi2011-08-24 09:10 送鲜花  10朵  
  • pcbaichi2011-08-24 09:10 送鲜花  10朵  
2011-08-23 22:56
Begin2011
Rank: 2
等 级:论坛游民
帖 子:60
专家分:61
注 册:2011-6-7
收藏
得分:0 
作为一个新手
不是我不想挑战
而是我真的看不懂。。
2011-08-24 11:39
zanzan1986
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:140
注 册:2011-2-22
收藏
得分:0 
这个我近几日想方块游戏想到了。
转一个矩阵可以通过改变x y 轴的原点和方向可以做到,在转换坐标就可以得到图像了。
这样就可以转90 180 270 都没问题了,我已经在纸的做了草搞,完全行得通
但如果要转30 15 等这些可麻烦了
估计可能要用的sin con 之类的了
2011-08-24 12:44
疯狂的字母
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-8-24
收藏
得分:0 
超级新手
想自学C语言的,飘过~看看程序的一般要求
2011-08-24 17:05
快速回复:无聊的时候出道简单题,看看你们学的好不好
数据加载中...
 
   



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

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