首都字母查找例子

来源:互联网 发布:韩国淘宝美女模特官网 编辑:程序博客网 时间:2024/04/28 16:57

有如下字母方阵:

O

K

D

U

B

L

I

N

A

L

P

G

O

C

E

V

R

A

S

M

N

S

M

B

O

S

L

O

N

D

O

N

Y

I

B

L

H

L

R

C

K

R

Z

U

R

I

C

H

O

A

I

B

X

M

U

Z

T

P

Q

G

L

A

M

V

图5.1 字母方阵

字母方阵中藏着九个首都名:DUBLIN、TOKYO、LONDON、ROME、BONN、PARIS、ZURICH、OSLO、LIMA,试设计一程序指出首都名的起始字母在字母方阵中行号和列号及字母的走向(如图5.2)。

<div><img src="file:///C:\Users\志成\AppData\Roaming\Tencent\Users\954785030\QQ\WinTemp\RichOle\QTIQTP]OV)Y%IABXZ`O`%$V.png" alt="" /></div>


     

比如有如下结果:

BONN

1,

5

down

LONDON

4,

3

right

OSLO

4,

4

up left

LIMA

5,

6

down

ROME

5,

7

up

该问题的解决显然要用到字符串的比较操作。

 

例2 字母方阵(如图5.1)中藏着九个首都名:DUBLIN、TOKYO、LONDON、ROME、BONN、PARIS、ZURICH、OSLO、LIMA,试设计一程序指出首都名的起始字母在字母方阵中行号和列号及字母的走向。

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main()
{
int i,j,k,l,m,n,p,q;
int N[9];
char E[7],M[9];
char A[8][8]={'O', 'K', 'D', 'U', 'B', 'L', 'I', 'N', 
              'A', 'L', 'P', 'G', 'O', 'C', 'E', 'V', 
                              'R', 'A', 'S', 'M', 'N', 'S', 'M', 'B', 
                              'O', 'S', 'L', 'O', 'N', 'D', 'O', 'N', 
                              'Y', 'I', 'B', 'L', 'H', 'L', 'R', 'C', 
                              'K', 'R', 'Z', 'U', 'R', 'I', 'C', 'H', 
                              'O', 'A', 'I', 'B', 'X', 'M', 'U', 'Z', 
     'T', 'P', 'Q', 'G', 'L', 'A', 'M', 'V'};
char C[9][7]={"DUBLIN","TOKYO","LONDON","ROME","BONN","PARIS","ZURICH","OSLO","LIMA"};
char D[8][11]={"up left","up","up right","right","down right","down","down left","left"};
int b[8]={0,1,2,3,4,5,6,7};
int di[8]={-1,-1,-1,0,1,1,1,0};
int dj[8]={-1,0,1,1,1,0,-1,-1};
printf(" —————————————\n");
printf("|          字母表          |\n");
printf("|  O  K  D  U  B  L  I  N  |\n");
printf("|  A  L  P  G  O  C  E  V  |\n");
        printf("|  R  A  S  M  N  S  M  B  |\n");
        printf("|  O  S  L  O  N  D  O  N  |\n");
        printf("|  Y  I  B  L  H  L  R  C  |\n");
        printf("|  K  R  Z  U  R  I  C  H  |\n");
        printf("|  O  A  I  B  X  M  U  Z  |\n");
        printf("|  T  P  Q  G  L  A  M  V  |\n");
printf(" —————————————\n");



for (i=0;i<=8;i++)                                   /*按首都名依次搜索*/
{
N[i]=strlen(C[i]);
for (j=0;j<=7;j++)                              /*扫描A中的每个字符*/
for (k=0;k<=7;k++)
{
q=0;
for (l=0;l<=7;l++)                          /*扫描每一个方向*/
{
m=0;n=0;p=0;
while((m+j)<8&&(n+k)<8&&p<N[i])
{
E[p]=A[m+j][n+k];
m=m+di[l];
n=n+dj[l];
p=p+1;
}
E[p]='\0';
if(strcmp(E,C[i])==0)
{
q=1;
break;
}
}
if(q==1)
printf("\n%s\t\t%d,%d\t%s     ",C[i],j+1,k+1,D[l]);       /*输出结果*/
}
}
printf("\n");
system("pause"); 
}

0 0
原创粉丝点击