您的位置:首页 > 其它

指针学习

2020-05-11 04:11 295 查看

7-4 用指针知识按要求输出5*5矩阵
实验7 函数 一、实验目的

掌握指针的概念,会定义并使用指针变量。
学会使用数组的指针和指向数组的指针变量。
学会使用字符串的指针和指向字符串的指针变量。
学会使用指向函数的指针变量。
二、实验内容

用指针知识将一个5×5矩阵的最大值放在中心,四角按从左到右,从上到下的顺序存放最小值。 编程提示:利用打擂台法求最大值和最小值。
输入样例:

输入数据,之间用空格分隔,例如

11 12 13 14 15
21 31 66 88 23
10 42 68 31 35
65 68 99 82 29
71 72 73 74 75

输出样例:

输出格式数据格式如下,用一个空格分隔

10 71 75 14 11
21 31 66 88 23
15 42 99 31 35
65 68 68 82 29
12 72 73 74 13

在这里插入代码片
```#include<stdio.h>
void change(int *p)///交换函数
{
int i,j,temp;
int *pmax,*pmin;
pmax=p;
pmin=p;
for(i=0;i<5;i++)
for(j=0;j<5;j++)///找最大值最小值
{
if(*pmax<*(p+5*i+j))
pmax=p+5*i+j;
if(*pmin>*(p+5*i+j))
pmin=p+5*i+j;
}
temp=*(p+12);///将最大值赋予中心
*(p+12)=*pmax;
*pmax=temp;
temp=*p;///最小值与左上角互换
*p=*pmin;
*pmin=temp;
pmin=p+1;///从a[0][1]开始找最小值
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(i==0&&j==0)
continue;
if(*pmin>*(p+5*i+j))
pmin=p+5*i+j;
}
temp=*pmin;
*pmin=*(p+4);
*(p+4)=temp;
pmin=p+1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(i==0&&j==0||(i==0&&j==4))
continue;
if(*pmin>*(p+5*i+j))
pmin=p+5*i+j;
}
temp=*pmin;
*pmin=*(p+20);
*(p+20)=temp;
pmin=p+1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if((i==0)&&j==0||(i==0&&j==4)||(i==4&&j==0))
continue;
if(*pmin>*(p+5*i+j))
pmin=p+5*i+j;
}
temp=*pmin;
*pmin=*(p+24);
*(p+24)=temp;

}
int main()
{
int a[5][5],*p,i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p=&a[0][0];
change(p);
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{if(j==4)
printf("%d",a[i][j]);
else
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
Starry_Sky_Dream 原创文章 50获赞 4访问量 2360 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: