Hi guys,
I try programming an game (sudoku 9x9) but when i compile the program i see this 2 errors ([Linker error] undefined reference to `__cpu_features_init' and ld returned 1 exit status) and i cant know why.
Please help me.
Thanks all, Duartespot
//SUDOKU 9x9
#include <stdio.h>
#include <stdlib.h>
#define N 9
int desenhar_tabela()
{
int i,j;
printf(" 1 2 3 4 5 6 7 8 9 \n");
printf("+--------+--------+--------+\n");
for (i = 0; i < N; i++)
printf("|");
for (j = 0; j < N; j++)
{
if (tabela1[i][j] != 0)
printf(" %d ", tabela1[i][j]);
else
printf(" ");
if (j % 3 == 2)
printf("|");
}
if (i % 3 == 2)
printf("\n+---------+---------+---------+");
printf("\n");
int ver_tabela(int linha, int coluna, int numero)
{
if (tabela1[linha][coluna]==0)
return 1;
else
return 0;
}
int tentar_colocar(int i, int j, int k)
{
int c,l;
for (l = 0; l < N; l++)
{
if (tabela1[l][j] == k)
return 0;
}
for (c = 0; c < N; c++)
{
if (tabela1[i][c] == k)
return 0;
}
for (l = i - i % 3; l < i - i % 3 +3; l++)
for (c = j - j % 3; c < j - j % 3 + 3; c++)
{
if (tabela1[l][c] == k)
return 0;
}
tabela1[i][j] = k;
desenhar_tabela();
return 1;
}
int coordenada_valida(int linha, int coluna)
{
if(linha>=0 && linha <9 && coluna>=0 && coluna <9)
return 1;
else
return 0;
}
int numero_valido(int numero)
{
if(numero>0 && numero <=9)
return 1;
else
return 0;
}
int existe_coluna(int coluna, int numero)
{
for (i=0; i<N; i++)
{
if (tabela1[i][coluna] == numero)
return 1;
}
}
int existe_linha(int linha, int numero)
{
for (j=0; j<N; j++)
{
if (tabela1[j][linha] == numero)
return 1;
}
}
int escreve(int linha, int coluna, int numero)
{
tabela1[linha][coluna]=numero;
}
void jogo()
{
int linha,coluna,numero;
printf("Introduza 0(ZERO) para sair");
if (coordenada_valida(linha-1, coluna-1)==1)
{
printf("Coordenada Valida\n");
if (numero_valido(numero)==1)
{
printf("Numero valido\n");
if (ver_tabela(linha-1, coluna-1, numero)==1)
{
printf("Posicao vazia\n");
if (tentar_colocar(linha-1, coluna-1, numero)==1)
{
printf("Quadrante OK\n");
escreve(linha-1,coluna-1,numero);
printf("Gravado\n");
system("cls");
}
else
{
printf("Nao foi possivel, ja existe na linha ou na coluna ou no mesmo quadrante\n");
}
}
else
{
printf("Posicao ja esta ocupada\n");
}
}
else
{
printf("Numero invalido\n");
}
}
else
{
printf("Coordenada invalida\n");
}
}
int terminar()
{
for (i=0;i<N;i++)
for (j=0;j<N;j++)
if (tabela1[i][j]==0)
return 1;
}
void gerar_matriz()
{
int linha,coluna,numero;
desenhar_tabela();
printf("Introduza uma linha: ");
scanf("%d", &linha);
printf("Introduza uma coluna: ");
scanf("%d", &coluna);
printf("Introduza o numero: ");
scanf("%d", &numero);
jogo();
}
int main()
{
printf("SUDOKU\n\n\n");
printf("REGRAS DO JOGO\n");
printf("O objetivo do jogo e completar a matriz principal utilizando\n");
printf("numeros de 1 a 9. Para completa-los, seguiremos a seguinte regra: \n");
printf("Nao podem haver numeros repetidos nas linhas horizontais e verticais, \n");
printf("assim como nas submatrizes.\n\n\n");
while(terminar()!=0)
{
gerar_matriz();
terminar();
}
}