指令是編寫一個使用二維數組的程序來查找比所有鄰居都大的元素。C中鄰居查找程序的代碼
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
你可以更具體的問你嗎? –
如何讓程序返回正確的值,因爲目前它只是打印每個數字 –