标题:输入一个五维矩阵,然后将其中最小的四个元素放到矩阵的四个角,然后输出矩 ...
取消只看楼主
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
结帖率:96.23%
已结贴  问题点数:10 回复次数:1 
输入一个五维矩阵,然后将其中最小的四个元素放到矩阵的四个角,然后输出矩阵。求指点。。
#include<stdio.h>                                 
void main()
{
int a[5][5],(*p)[5],i=0,j=0,b[25],k=0,m=0;   真心求指点啊,弄不会呀。。。各种伤心。。
  p=a;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            scanf("%d",*(p+i)+j);   输入矩阵
        for(i=0;i<5;i++)
            for(j=0;j<5;j++)
                printf("%d",*(*(p+i)+j));将最初的矩阵显示出来。
            printf("\n");
            for(i=0;i<5;i++)
                for(j=0;j<5;j++)
                    b[5*i+j]=a[i][j];   将五维矩阵的值送到一个一维的矩阵。
                for(k=0;k<25;k++)
                    printf("%d",b[k]);
                printf("\n");
                for(k=0;k<24;k++)
                {    for(m=k+1;m<25;m++)
                    {
                        int temp;
                        if(b[k]>b[m])
                            temp=b[m];
                        b[m]=b[k];
                        b[k]=temp;
                    }
                }                           将这个矩阵由小到大的顺序进行排列。从而b[0]-b[3]是这个矩阵中最小的四个元素。
            for(k=0;k<25;k++)
                    printf("%d",b[k]);
                for(i=0;i<5;i++)               将这四个元素放置在矩阵的四个角。
               {    for(j=0;j<5;j++)
                    {
                        int temp1,temp2,temp3,temp4,temp5;
                        if(*(*(p+i)+j)==b[0])
                            temp1=*(*(p+i)+j);
                            *(*(p+i)+j)=(*(*p));
                            (*(*p))=temp1;
                         if(*(*(p+i)+j)==b[1])
                            temp2=*(*(p+i)+j);
                            *(*(p+i)+j)=(*(*p+4));
                            (*(*p+4))=temp2;
                        if(*(*(p+i)+j)==b[2])
                            temp3=*(*(p+i)+j);
                            *(*(p+i)+j)=*(*(p+4));
                            *(*(p+4))=temp3;
                         if(*(*(p+i)+j)==b[3])
                            temp4=*(*(p+i)+j);
                            *(*(p+i)+j)=*(*(p+4)+4);
                            *(*(p+4)+4)=temp4;
                    }
                }
                    for(i=0;i<5;i++)                   输出改变后的矩阵。
                       for(j=0;j<5;j++)
                            printf("%d",a[i][j]);
                        


}
搜索更多相关主题的帖子: 元素 include 矩阵 
2012-11-01 19:44
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
得分:0 
回复 楼主 fl8962
但是,你这么写,是把这个五维矩阵限定死了啊,我是想可以随意的输入矩阵。而且,我不知道我的指针用的有没有错。。

想抽苏烟了。
2012-11-02 10:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385525-1-1.html




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

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