8.10 将一个5X5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用。
2018-03-27 15:17
1486 查看
8.10 将一个5X5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用。
个人代码如下#include<stdio.h>
int main()
{
int a[5][5],*k,i;
for(k=*a;k<*a+25;scanf("%d",k++)); //输入矩阵
void trans(int (*p)[5]); //声明转换函数
trans(a);
for(i=0;i<5;printf("\n"),i++)
for(k=*(a+i);k<*(a+i)+5;printf("%5d",*k++)); //输出矩阵
}
void trans(int (*p)[5])
{
int max,min1,min2,min3,min4; //分别定义最大数和4个最小数
int m,n;//分别定义最大数和4个最小数所在的行和列
int i,j;
//找最大数
for(i=0,max=*(*p),m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(*(*(p+i)+j)>max)
{
max=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*(p+2)+2);*(*(p+2)+2)=max; //最大数换到矩阵中心
//找第一最小数
for(i=0,min1=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(*(*(p+i)+j)<min1)
{
min1=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*p);*(*p)=min1; //第一最小数换到矩阵左上角
//找第2️⃣最小数
for(i=0,min2=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(min1<*(*(p+i)+j)&&a
4000
mp;*(*(p+i)+j)<min2)
{
min2=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*p+4);*(*p+4)=min2; //第2最小数换到矩阵右上角
//找第3最小数
for(i=0,min3=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(min2<*(*(p+i)+j)&&*(*(p+i)+j)<min3)
{
min3=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*(p+4));*(*(p+4))=min3; //第3最小数换到矩阵左下角
//找第4最小数
for(i=0,min4=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(min3<*(*(p+i)+j)&&*(*(p+i)+j)<min4)
{
min4=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*(p+4)+4);*(*(p+4)+4)=min4; //第4最小数换到矩阵右下角
}
个人代码如下#include<stdio.h>
int main()
{
int a[5][5],*k,i;
for(k=*a;k<*a+25;scanf("%d",k++)); //输入矩阵
void trans(int (*p)[5]); //声明转换函数
trans(a);
for(i=0;i<5;printf("\n"),i++)
for(k=*(a+i);k<*(a+i)+5;printf("%5d",*k++)); //输出矩阵
}
void trans(int (*p)[5])
{
int max,min1,min2,min3,min4; //分别定义最大数和4个最小数
int m,n;//分别定义最大数和4个最小数所在的行和列
int i,j;
//找最大数
for(i=0,max=*(*p),m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(*(*(p+i)+j)>max)
{
max=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*(p+2)+2);*(*(p+2)+2)=max; //最大数换到矩阵中心
//找第一最小数
for(i=0,min1=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(*(*(p+i)+j)<min1)
{
min1=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*p);*(*p)=min1; //第一最小数换到矩阵左上角
//找第2️⃣最小数
for(i=0,min2=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(min1<*(*(p+i)+j)&&a
4000
mp;*(*(p+i)+j)<min2)
{
min2=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*p+4);*(*p+4)=min2; //第2最小数换到矩阵右上角
//找第3最小数
for(i=0,min3=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(min2<*(*(p+i)+j)&&*(*(p+i)+j)<min3)
{
min3=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*(p+4));*(*(p+4))=min3; //第3最小数换到矩阵左下角
//找第4最小数
for(i=0,min4=max,m=n=0;i<5;i++)
for(j=0;j<5;j++)
if(min3<*(*(p+i)+j)&&*(*(p+i)+j)<min4)
{
min4=*(*(p+i)+j);
m=i;n=j;
}
*(*(p+m)+n)=*(*(p+4)+4);*(*(p+4)+4)=min4; //第4最小数换到矩阵右下角
}
相关文章推荐
- 习题 8.10 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之。用main函数调用。
- 将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序从左到右,从上到下顺序依次从小到大存放),写一个函数实现之。用main函数调用。
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。
- C语言:将一个5x5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素....
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(对比两个程序)
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放在4个最小的元素
- 5*5最大的元素放在中心,4个角分别最小的元素
- 5*5的矩阵中最大的元素放在中心,写一个函数实现
- 将一个5*5 矩阵中最大的放在中间,四个角分别放最小的数据,顺序分别是左右上下,通过函数完成。
- 将一个5*5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 将一个5X5的矩阵中最大的元素放在中心
- 实验九指针1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 实验9 指针1 、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依
- 实验9(1)程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 函数调用输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放。
- 5*5的矩阵中最大的元素放在中心
- 10.10 5*5矩阵,中间最大,4角4个最小元素
- 作业题:输入4个整数,找出其中最大的数。用一个函数来实现. 分别使用结构化方法和函数嵌套的方法。