| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:关于了个C语言编程的问题。
只看楼主 加入收藏
CDme
Rank: 1
来 自:昆明
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-5-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
关于了个C语言编程的问题。
编写程序,将一个5*5阶矩阵中该最大的元素放在中心,四个角分别放四个最小元素(从左到右,从上到下顺序从小到大的顺序存放)
要求:通过函数调用方式并分别使用数组名和指针变量作为函数的参数
搜索更多相关主题的帖子: C语言 
2010-05-23 21:43
冥卫
Rank: 8Rank: 8
来 自:深山老林
等 级:蝙蝠侠
帖 子:280
专家分:772
注 册:2010-4-20
收藏
得分:6 
是写代码?还是?
2010-05-23 21:49
CDme
Rank: 1
来 自:昆明
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-5-23
收藏
得分:0 
回复 2楼 冥卫
写代码。老师讲课是没有讲,自己不会编,望指教。

我就是要做的更好。
2010-05-24 16:44
zhuxu0423
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:101
注 册:2010-4-12
收藏
得分:6 
#include<stdio.h>
void main()
{
 void change(int x[][5]);
 int a[5][5]={{100,99,98,97,96},{95,94,93,92,91},{90,89,88,87,86},{85,84,83,82,81},{80,79,78,77,76}};
 int i,j;
 printf("转换前:\n");
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   printf("%4d",a[i][j]);
  printf("\n");
 }
 change(a);/*调用函数*/
 printf("转换后:\n");
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   printf("%4d",a[i][j]);
  printf("\n");
 }
}
void change(int x[][5])
{
 int b[25],i,j,k=0,t;
 for(i=0;i<5;i++)/*把二维数组中元素按行的顺序存放到一维数组*/
  for(j=0;j<5;j++)
  {
   b[k]=x[i][j];
   k++;
  }
  for(i=0;i<24;i++)/*选择排序法,对一维数组中元素进行从小到大的排序*/
  {
   k=i;
   for(j=i+1;j<25;j++)
    if(b[j]<b[k])
     k=j;
    if(k!=i)
    {
     t=b[k];
     b[k]=b[i];
     b[i]=t;
    }
  }
 for(i=0;i<5;i++)
  for(j=0;j<5;j++)
   if(x[i][j]==b[24])
   {
    t=x[i][j];
    x[i][j]=x[2][2];
    x[2][2]=t;
    break;
   }
   for(i=0;i<5;i++)
     for(j=0;j<5;j++)
    if(x[i][j]==b[0])
    {
    t=x[i][j];
    x[i][j]=x[0][0];
    x[0][0]=t;
     break;
    }
 for(i=0;i<5;i++)
       for(j=0;j<5;j++)
    if(x[i][j]==b[1])
    {
    t=x[i][j];
    x[i][j]=x[0][4];
    x[0][4]=t;
     break;
    }
 for(i=0;i<5;i++)
        for(j=0;j<5;j++)
    if(x[i][j]==b[2])
    {
    t=x[i][j];
    x[i][j]=x[4][0];
    x[4][0]=t;
     break;
    }
 for(i=0;i<5;i++)
         for(j=0;j<5;j++)
    if(x[i][j]==b[3])
    {
    t=x[i][j];
    x[i][j]=x[4][4];
    x[4][4]=t;
     break;
    }
}
C++代码:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
 void change(int x[][5]);
 int a[5][5]={{100,99,98,97,96},{95,94,93,92,91},{90,89,88,87,86},{85,84,83,82,81},{80,79,78,77,76}};
 int i,j;
 cout<<"转换前:"<<endl;
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   cout<<setw(4)<<a[i][j];
  cout<<endl;
 }
 change(a);/*调用函数*/
 cout<<"转换后:"<<endl;
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
   cout<<setw(4)<<a[i][j];
  cout<<endl;
 }
 return 0;
}
void change(int x[][5])
{
 int b[25],i,j,k=0,t;
 for(i=0;i<5;i++)/*把二维数组中元素按行的顺序存放到一维数组*/
  for(j=0;j<5;j++)
  {
   b[k]=x[i][j];
   k++;
  }
  for(i=0;i<24;i++)/*选择排序法,对一维数组中元素进行从小到大的排序*/
  {
   k=i;
   for(j=i+1;j<25;j++)
    if(b[j]<b[k])
     k=j;
    if(k!=i)
    {
     t=b[k];
     b[k]=b[i];
     b[i]=t;
    }
  }
 for(i=0;i<5;i++)
  for(j=0;j<5;j++)
   if(x[i][j]==b[24])
   {
    t=x[i][j];
    x[i][j]=x[2][2];
    x[2][2]=t;
    break;
   }
   for(i=0;i<5;i++)
     for(j=0;j<5;j++)
    if(x[i][j]==b[0])
    {
    t=x[i][j];
    x[i][j]=x[0][0];
    x[0][0]=t;
     break;
    }
 for(i=0;i<5;i++)
       for(j=0;j<5;j++)
    if(x[i][j]==b[1])
    {
    t=x[i][j];
    x[i][j]=x[0][4];
    x[0][4]=t;
     break;
    }
 for(i=0;i<5;i++)
        for(j=0;j<5;j++)
    if(x[i][j]==b[2])
    {
    t=x[i][j];
    x[i][j]=x[4][0];
    x[4][0]=t;
     break;
    }
 for(i=0;i<5;i++)
         for(j=0;j<5;j++)
    if(x[i][j]==b[3])
    {
    t=x[i][j];
    x[i][j]=x[4][4];
    x[4][4]=t;
     break;
    }
}
2010-05-25 08:54
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:6 
没话说。
顶楼上的。

南国利剑
2010-05-26 00:39
快速回复:关于了个C语言编程的问题。
数据加载中...
 
   



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

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