| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 648 人关注过本帖
标题:输入一个五维矩阵,然后将其中最小的四个元素放到矩阵的四个角,然后输出矩 ...
取消只看楼主 加入收藏
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
快速回复:输入一个五维矩阵,然后将其中最小的四个元素放到矩阵的四个角,然后输 ...
数据加载中...
 
   



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

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