/*实验5--12,求矩阵的局部极大值*/
#include <stdio.h>
#define N 20
int main()
{
int i, j, m, n, flag = -1;
int a[N][N];
scanf("%d%d",&m,&n);
for (i = 0; i<m; i++)
{
for (j = 0; j<n; j++)
{
scanf("%d", &a[i][j]);
}
}
for (i = 1; i<m-1; i++)
{
for (j = 1; j<n-1; j++)
{
if (a[i][j] > a[i - 1][j] && a[i][j] > a[i + 1][j] && a[i][j] > a[i][j - 1] && a[i][j] > a[i][j + 1])
{
printf("%d %d %d\n", a[i][j], i+1, j+1);
flag = 1;
}
}
}
if (flag == -1)
{
printf("没有局部最大值 %d %d\n",m,n);
}
return 0;
}
/实验5-13求整数序列中出现次数最多的数/
/*实验5-13求整数序列中出现次数最多的数*/
#include<stdio.h>
#define N 1000
int main()
{
int i, j, n;
int a[N];
int b[N] = {0};
int max;
int index = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (a[i] == a[j])
{
b[i]++;
}
}
}
max = b[0];
for (i = 1; i < n; i++)
{
if (max < b[i])
{
max = b[i];
index = i;
}
}
printf("num=%d count=%d\n",a[index], max);
return 0;
}
/实验5-14 猴子选大王/
/*实验5-14 猴子选大王*/
#include<stdio.h>
#define MAX 1005
int main(void){
int monkey[MAX]={0};
int n,temp=0;
int monkeyOut=0;
int count = 0;
int i=1;
scanf("%d",&n);
do{
temp++;
if(temp>n)
temp=1;
if(!monkey[temp])
count++;
else
continue;
if(count==3)
{
count=0;
monkey[temp]=1;
monkeyOut++;
}
}
while((monkeyOut+1)!=n);
for(i=1;i<=n;++i)
{
if(!monkey[i])
{
printf("%d\n",i);
break;
}
}
return 0;
}
/实验5-18,螺旋方阵/
/*实验5-18,螺旋方阵*/
#include <stdio.h>
#define MaxLen 10
void fun(int a[MaxLen][MaxLen],int n)
{
int i,j,k=0,m;
if (n%2==0)
m=n/2;
else
m=n/2+1;
for (i=0;i<m;i++)
{
for (j=i;j<n-i;j++)
{
k++;
a[i][j]=k;
}
for (j=i+1;j<n-i;j++)
{
k++;
a[j][n-i-1]=k;
}
for (j=n-i-2;j>=i;j--)
{
k++;
a[n-i-1][j]=k;
}
for (j=n-i-2;j>=i+1;j--)
{
k++;
a[j][i]=k;
}
}
}
int main()
{
int n,i,j;
int a[MaxLen][MaxLen];
printf("输入n(n<10):");
scanf("%d",&n);
fun(a,n);
printf("%d阶数字方阵如下:\n",n);
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}