请教一道编程题
#include <stdio.h>
int ch[5][5];
int n,number,c;
void count(int,int);
int getch(void);
int main()
{
int i,j;
while(scanf("%d\n" , &n) , n != 0){
for (i = 0 ; i < n ; i++)
for (j = 0 ; j < n ; j++)
ch[i][j] = getch();
number = 0;
count(0,0);
printf("%d\n" , number);
}
return 0;
}
int isput(int x , int y)
{
int row,col;
for (col = y - 1 ; col >= 0 ; col--) {
if (ch[x][col] == 'T')
return -1;
if (ch[x][col] == 'X')
break;
}
for (row = x - 1 ; row >= 0 ; row--) {
if (ch[row][y] == 'T')
return -1;
if (ch[row][y] == 'X')
break;
}
return 1;
}
void count(int index , int m)
{
int i,j;
if (index > n*n) {
if (m > number)
number = m;
return;
}
else {
i = index / n;
j = index % n;
if (ch[i][j] == '.' && (isput(i,j) == 1)) {
ch[i][j] = 'T';
count(index + 1,m +1);
ch[i][j] = '.';
}
}
count(index + 1,m);
}
int getch(void)
{
c = getchar();
if (c != EOF);
if (c = '\n') {
c = getchar();
return c;
}
else {
return c;
}
}
本希望输入:
4
.X..
....
XX..
....
输出:5
结果竟然没有输出结果。
这是浙大在线评测的1002题,请有做过的高手帮忙找一下哪里出错了,不胜感激。
问题点数:80、回复次数:4Top
1 楼jinjiajie(leorio)回复于 2006-03-10 14:51:23 得分 10
???你的要求是什么?看不懂哎...Top
2 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-10 15:08:19 得分 50
int getch(void)
{
c = getchar();
if (c != EOF);
if (c = '\n') { // 这里是 == 吧
c = getchar();
return c;
}
else {
return c;
}
}Top
3 楼Loveflys()回复于 2006-03-10 16:17:41 得分 10
头大,帮你顶Top
4 楼SK_MadFrog(平凡但不平庸的人)回复于 2006-03-10 16:39:18 得分 10
建议你以后发程序时注明一下程序的主题,否则得不到好结果得...Top




