C语言
可以运行,但是无论输入什么,输出总是为printf("X一方获胜\n")
以下是代码内容:
#include <stdio.h>
int main()
{
const int size =3;
int board[size][size];
int i,j;
int num0fx;
int num0f0;
int result =-1; //-1:没人赢,1:X赢,0:0赢
//读入矩阵
for (i=0; i<size; i ++){
for(j=0; j<size; j ++){
scanf("%d", &board[i][j]);
}
}
//检查行
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;
}
}
// 检查列
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;
}
}
}
//检查对角线
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(result = 0){
printf("0一方获胜\n");
}else if(result = 1){
printf("X一方获胜\n");
}else {
printf("无人获胜\n");
}
return 0;
}
if(result = 0){
printf("0一方获胜\n");
这个if里面的“==”少了一个“=”
低级错误,if(result = 0),if里面都是=,要用==