好的,我在C中有一个代码。它的零件和十字架。 但我不知道我的'sprawdzenie'(检查)。 IDE发送给我的控件可能会到达非void函数的末尾[-Wreturn-type]。 我不知道什么是错的,但我知道我的代码不是美。
#include <stdio.h>
#include <stdlib.h>
char plansza[3][3];
void wczytaj()
{
printf(" %c |%c | %c\n",plansza[0][0],plansza[0][1],plansza[0][2]);
printf("-------\n");
printf(" %c |%c | %c\n",plansza[1][0],plansza[1][1],plansza[1][2]);
printf("-------\n");
printf(" %c |%c | %c\n",plansza[2][0],plansza[2][1],plansza[2][2]);
}
char sprawdzenie()
{
if((plansza[0][0]&&plansza[0][1]&&plansza[0][2] =='x' )||
(plansza[0][2]&&plansza[1][1]&&plansza[2][0]=='x') ||
(plansza[0][2]&&plansza[1][2]&&plansza[2][2]=='x') ||
(plansza[2][0]&&plansza[2][1]&&plansza[2][2]=='x') ||
(plansza[1][0]&&plansza[1][1]&&plansza[1][2]=='x') ||
(plansza[0][1]&&plansza[1][1]&&plansza[2][1]=='x') ||
(plansza[0][0]&&plansza[1][1]&&plansza[2][2]=='x') ||
(plansza[0][0]&&plansza[1][0]&&plansza[2][0]=='x'))
{
return 1;
}else if((plansza[0][0]&&plansza[0][1]&&plansza[0][2]=='o') ||
(plansza[0][0]&&plansza[1][0]&&plansza[2][0]=='o') ||
(plansza[0][0]&&plansza[1][1]&&plansza[2][2]=='o') ||
(plansza[0][1]&&plansza[1][1]&&plansza[2][1]=='o') ||
(plansza[1][0]&&plansza[1][1]&&plansza[1][2]=='o') ||
(plansza[2][0]&&plansza[2][1]&&plansza[2][2]=='o') ||
(plansza[0][2]&&plansza[1][2]&&plansza[2][2]=='o') ||
(plansza[0][2]&&plansza[1][1]&&plansza[2][0]=='o'))
{
return 2;
}
}
void gracz_x()
{
unsigned int i=3;
unsigned int j=3;
wczytaj();
printf("Podaj wiersz i kolumnę: ");
scanf("%u %u",&i,&j);
if(plansza[i][j]!='o')
plansza[i][j]='x';
else{
printf("Podaj poprawne współrzędne: ");
scanf("%u %u",&i,&j);
plansza[i][j]='x';
}
}
void gracz_o()
{
unsigned int i=3;
unsigned int j=3;
wczytaj();
printf("Podaj wiersz i kolumnę: ");
scanf("%u %u",&i,&j);
if(plansza[i][j]!='x')
plansza[i][j]='o';
else{
printf("Podaj poprawne współrzędne: ");
scanf("%u %u",&i,&j);
plansza[i][j]='o';
}
}
int main()
{
char wynik=0;
int kolejka = 0;
while(wynik==0)
{
if(kolejka==0)
{
gracz_o();
}else{
gracz_x();
}
kolejka=kolejka+1;
wynik=sprawdzenie();
if(kolejka==9){
printf("remis");
break;
}
}
wczytaj();
if(wynik==1)
{
printf("wygryw x\n");
}else if(wynik==2)
{
printf("wygryw o\n");
}
return 0;
}
答案 0 :(得分:1)
这意味着您的函数sprawdzenie
应该返回char
但它可能不会。您有if
和else if
。如果这些条件都不满足,则函数将结束并且不返回任何内容。这是不允许的,因为该函数应该返回char
。
在末尾添加默认返回值或添加else
块以防止函数结束而不返回任何内容。