c语言设置编码,C语言编码问题

这有个炮兵阵地数组的编码,希望能够一句一句的解释下,可以发我邮箱去,邮箱

uu556677

@163.com

分数绝对让你满意

#include

#include

void panduan(char a[][10],int m,int n)

{

int i=0,j=0,q=0,k,c,d,p;

p=m;

if(n

{

p=n;

}

for(k=0;k

{

c=m-1-k;

d=n-1-k;

if(a[k][k]=='p')/*遇到p后将攻击范围也变成h,防止再次判断是否为p,这个循环数从四个角开始循环,一直循环到阵地中间*/

{

q++;

a[k][k+1]='h';

a[k][k+2]='h';

a[k+1][k]='h';

a[k+2][k]='h';

a[k][k]='h';

}

if(a[k][d]=='p')

{

q++;

a[k+1][d]='h';

a[k+2][d]='h';

a[k][d-1]='h';

a[k][d-2]='h';

a[k][d]='h';

}

if(a[c][k]=='p')

{

q++;

a[c][k+1]='h';

a[c][k+2]='h';

a[c-1][k]='h';

a[c-2][k]='h';

a[c][k]='h';

}

if(a[c][d]=='p')

{

q++;

a[c-1][d]='h';

a[c-2][d]='h';

a[c][d-1]='h';

a[c][d-2]='h';

a[c][d]='h';

}

for(i=k,j=k;j

{

if(a[i][j]=='p')

{

q++;

a[i+1][j]='h';

a[i+2][j]='h';

a[i][j+1]='h';

a[i][j+2]='h';

a[i][j]='h';

}

}

for(i=k,j=d;i

{

if(a[i][j]=='p')

{

q++;

a[i+1][j]='h';

a[i+2][j]='h';

a[i][j-1]='h';

a[i][j-2]='h';

a[i][j]='h';

}

}

for(i=c,j=k;j

{

if(a[i][j]=='p')

{

q++;

a[i-1][j]='h';

a[i-2][j]='h';

a[i][j+1]='h';

a[i][j+2]='h';

a[i][j]='h';

}

}

for(i=c,j=k;i>0;i--)

{

if(a[i][j]=='p')

{

q++;

a[i][j+1]='h';

a[i][j+2]='h';

a[i-1][j]='h';

a[i-2][j]='h';

a[i][j]='h';

}

}

}

printf("%d\n",q);

}

void main()

{

char a[100][10];

int i,m,n;

printf("请输入占地的行数与列数,用空格分开:");

scanf("%d%d",&m,&n);

printf("输入每行的p,h值:\n");

for(i=0;i

{

scanf("%s",&a[i]);

}

panduan(a,m,n);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值