程序输出结果错误,所有结果都等于printf("无人获胜\n"); 个人感觉可能是if( num0f0 = num0fx = 2)出的问题,尝试用switch-case,break解决但似乎没大用
这是代码内容:
#include <stdio.h>
int main()
{
const int size =3;
int board[size][size];
int i,j;
int num0fx;
int num0f0;
int result;
int type;
//读入矩阵
for (i=0; i<size; i ++){
for(j=0; j<size; j ++){
scanf("%d", &board[i][j]);
}
}
//检查行
switch(type){
case 1:
for(i=0; i<size && result == -1; i ++){
num0fx = num0f0 =0;
for(j = 0; j<size; j ++){
if(board[i][j] == 1){
num0fx ++;
}else{
num0f0 ++;
}
}
if (num0f0 == size){
result = 0;
}else if(num0fx == size){
result = 1;
}
} break;
// 检查列
case 2 :
if (result == -1){
for(j = 0; j<size && result == -1; j ++){
num0f0 = num0fx = 0;
for(i = 0; i<size ;i ++){
if (board[i][j] == 1){
num0fx ++;
}else {
num0f0 ++;
}
}
if(num0f0 == size){
result = 0;
}else if(num0fx == size){
result = 1;
}
}
}break;
//检查对角线
num0f0 = num0fx =0;
for (i = 0; i<size; i++){
if(board[i][i] == 1){
num0fx ++;
}else{
num0f0 ++;
}
if( num0f0 == size){
result = 0;
}else if(num0fx = size){
result = 1;
}
}
num0f0 = num0fx =0;
for(i=0 ;i<size; i ++){
if (board[i][size-i-1] == 1){
num0fx ++;
}else{
num0f0 ++;
}
if( num0f0 = num0fx = 2){
result = -1;
}
}
}
if(result == 0){
printf("O一方获胜\n");
}else if(result == 1){
printf("X一方获胜\n");
}else if(result == -1){
printf("无人获胜\n");
}
printf("result=%d\n", result); //测试输出数据为1还是0
return 0;
}
result type 两个参数没有初始化,也没赋初值?