指令是编写一个程序,该程序使用一个二维数组来查找比所有相邻元素都大的元素。
For example if my input is:
1 2 11
13 5 6
7 6 9
The output would be: 11, 13, 9
出于某种原因,尽管它根本没有显示任何数字。有人可以帮助更正代码。
这是代码:
#include <stdio.h>
#include "genlib.h"
#include "simpio.h"
#define N 3
bool neighbourCheck(int array[N+2][N+2], int i, int j);
void getArray(int array[N+2][N+2]);
main()
{
int array[N+2][N+2], i, j;
printf("This program will ask you to enter nine integers of an aray.\n");
getArray(array);
for (i=1; i<N+1; i++)
{
for(j=1; j<N+1; j++)
{
if(neighbourCheck(array, i, j)==TRUE)
{
printf("%d\t", array[i][j]);
}
}
}
getchar();
}
void getArray(int array[N+2][N+2])
{
int i, j;
for(j=0;j<=N+1;j++)
{
i=0;
array[i][j]=-1;
i=4;
array[i][j]=-1;
}
for(i=1;i<N+1;i++)
{
j=0;
array[i][j]=-1;
j=4;
array[i][j]=-1;
}
for(i=1;i<N+1;i++)
{
for(j=1;j<4;j++)
{
printf("\nEnter a positive integer: ");
array[i][j]=GetInteger();
}
}
}
bool neighbourCheck(int array[N+2][N+2], int i, int j)
{
int l, m;
for(l=i-1; l<i+1; l++)
{
for(m=j-1; m<j-1; m++)
{
if(array[l][m]>=array[i][j])
{
return(FALSE);
}
return(TRUE);
}
}
}
谢谢 :D