| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 392 人关注过本帖
标题:函数能正常运行但结果不对,请各位师兄帮忙诊断
取消只看楼主 加入收藏
小戏
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-7-11
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:0 
函数能正常运行但结果不对,请各位师兄帮忙诊断
题目:将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小元素(顺序为从左到右,从上到下的顺序依次从小到大存放)。
#include<stdio.h>
void main()

{
    void change(int *) ;
    int a[5][5];
    int *p,i,j;
    printf("input matrix:\n");
    for(i=0;i<5;i++)
   
    for(j=0;j<5;j++)   
        scanf("%d",&a[i][j]);
    for(i=0;i<5;i++)
            {printf("\n");
            for(j=0;j<5;j++)
                printf("%4d",a[i][j]);}
                printf("\n");
                p=a;
        
        change(a);
        printf("Now,matix:\n");
            for(i=0;i<5;i++)
            {printf("\n");
            for(j=0;j<5;j++)
                printf("%4d",a[i][j]);}
                    printf("\n");
}
         
void dz(int *p)
{ int i,j,temp;
int *min,*max;
max=p;
min=p;
for(i=0;i<5;i++)
   for(j=0;j<5;j++)
   if(*max<*(p+i*5+j)) max=p+i*5+j;
           else if(*min>*(p+i*5+j)) min=p+i*5+j;
           temp=*max;
           *max=*(p+12);
           *(p+12)=temp;
           temp=*p;
           *p=*min;
           *min=temp;
    min=p+1;
for(i=0;i<5;i++)
   for(j=0;j<5;j++)
      
   if((*min>*(p+i*5+j))&&((p+i*5+j)!=p))
       min=p+i*5+j;
   temp=*(p+4);
 *(p+4)=*min;
*min=temp;

for(i=0;i<5;i++)
   for(j=0;j<5;j++)
      
   if((*min>*(p+i*5+j))&&((p+i*5+j)!=p)&&((p+i*5+j)!=(p+4)))
       min=p+i*5+j;
   temp=*(p+20);
   *(p+20)=*min;
*min=temp;
 
for(i=0;i<5;i++)
   for(j=0;j<5;j++)
      
 if((*min>*(p+i*5+j))&&((p+i*5+j)!=p)&&((p+i*5+j)!=(p+4))&&((p+i*5+j)!=(p+20)))
       min=p+i*5+j;
   temp=*(p+24);
   *(p+24)=*min;
*min=temp;

       }
搜索更多相关主题的帖子: change include 最大的 元素 
2012-08-12 23:03
快速回复:函数能正常运行但结果不对,请各位师兄帮忙诊断
数据加载中...
 
   



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

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