请教:实在是没有思路。
给一个棋盘,由m*n个正方形组成,这些正方形涂有黑色和白色两种颜色,求棋盘上完全由白色组成的长方形个数。输入:
23
bbb
www
22
bw
输出:
6
2
要求:写出程序。
程序代码:#include "stdio.h"
int sum=0;
char a[10][10]={"www",""};
int e=5,f=5; /* 棋盘为e行f列 */
void test(int ,int,int,int);
void main()
{
int i,j,m,n;
// scanf("%d%d",&e,&f); /*输入棋盘长宽大小*/
// for(i=0;i<e;i++) /*输入黑白颜色*/
// gets(a[i]);
for(i=0;i<e;i++) /*遍历所有可能的长方形*/
for(j=0;j<f;j++)
for(m=i;m<e;m++)
for(n=j;n<f;n++)
test(i,j,m,n); /*测试是否为纯白*/
printf("the sum is: %d\n",sum);
}
void test(int i,int j,int m,int n)
{
int s,x,y;
s=0;
for(x=i;x<=m;x++)
for(y=j;y<=n;y++)
if(a[x][y]=='w')s++;
else return;
if(s==(m-i+1)*(n-j+1))sum++; /*满足条件为纯白长方形*/
}核心代码写出来了,你自己参考吧!至于输入,#include "stdio.h"中的函数太难用了,你自己去设计好了!
