| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 464 人关注过本帖
标题:指针求解 不知道错哪
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:11 
指针求解 不知道错哪
程序代码:
#include<stdio.h>

main()
{
    void array(int x[5][5]);
    int i,j,a[5][5];

    printf("please input array\n");
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
           scanf("%d",&a[i][j]);

     array(a);
     printf("follows are the array changer\n");
     for(i=0;i<5;i++)
       {
           for(j=0;j<5;j++)
              printf("%3d",a[i][j]);
           printf("\n");
       }


}

void array(int x[5][5])
{
    int i,j,*h=x[0],*k[25],t,l=0,m,*n;
     for(i=0;i<5;i++)                              /*must analyze clearly*/
        for(j=0;j<5;j++)
          if(*h<*(x[i]+j+1))                      /*if this line change 'h' which in the bracket into 'x[i]+j' ,it would be wrong */
              h=x[i]+j+1;

     for(i=0;i<5;i++)                           /*get all of the elements' address*/
        for(j=0;j<5;j++)
          k[l++]=&x[i][j];

      for(i=0;i<25;i++)                       /*arrange the address*/
      {
          m=i;
          for(j=0;j<25;j++)
              if(*k[m]>*k[j])
                 m=j;
           n=k[i];
           k[i]=k[m];
           k[m]=n;
        }

     t=x[2][2]; x[2][2]=*h; *h=t;
     t=x[0][0]; x[0][0]=*k[0]; *k[0]=t;
     t=x[4][0]; x[4][0]=*k[1]; *k[1]=t;
     t=x[0][4]; x[0][4]=*k[2]; *k[2]=t;
     t=x[4][4]; x[4][4]=*k[3]; *k[3]=t;
}
一个5×5矩阵 把最大的数放在中间 最小的四个数按照从上倒下 左到右顺序放置
2011-05-21 12:21
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
1  2  3  4  5
6  7  8  9  10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

这个正确应输出什么?  最小的四个数按照从上倒下 左到右顺序放置  不理解

                                         
===========深入<----------------->浅出============
2011-05-21 12:33
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:1 
你想要矩阵之间的转置是么
2011-05-21 13:23
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
不知道你要干嘛
2011-05-21 13:24
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:3 
if(*h<*(x[i]+j+1))                      /*if this line change 'h' which in the bracket into 'x[i]+j' ,it would be wrong */
    h=x[i]+j+1;
应该是:x[i]+j吧;

t=x[2][2]; x[2][2]=*h; *h=t;
     t=x[0][0]; x[0][0]=*k[0]; *k[0]=t;
     t=x[4][0]; x[4][0]=*k[1]; *k[1]=t;
     t=x[0][4]; x[0][4]=*k[2]; *k[2]=t;
     t=x[4][4]; x[4][4]=*k[3]; *k[3]=t;

x[2][2]应该是*(x[2]+2)吧,后面都要改

我是新手,也不是很清楚,楼主考虑考虑
2011-05-21 14:01
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:3 
回复 2楼 laoyang103

1 5 21 13 2
6 7 8 9 10
11 12 25 14 15
16 17 18 19 20
3 22 23 24 4
2011-05-21 14:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
不知道  呵呵

                                         
===========深入<----------------->浅出============
2011-05-21 14:15
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
en恩就是上面 老兄得之啊
2011-05-21 15:03
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
以下是引用烟雾中的迷茫在2011-5-21 15:03:23的发言:

en恩就是上面 老兄得之啊
木看出规律
2011-05-21 15:12
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
回复 4楼 其实、不想说
不是转置  漏下的理解了  
2011-05-21 15:14
快速回复:指针求解 不知道错哪
数据加载中...
 
   



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

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