Добро пожаловать в Stack Overflow и добро пожаловать в программирование на C.
Многое не так с вашим кодом. Первое, что бросается в глаза, это строки:
int move(int a[3][3], int i, int j);
int recursion(int a[3][3], int b[3][3], int i, int j);
внутри вашего main()
(строки 22 и 24). Я предполагаю, что то, что вы намереваетесь делать, - это вызов move()
и recursion()
, но вы используете синтаксис для функции объявление , а не для функции , вызывающей .
Во-вторых, после того, как оба ваших цикла с scan()
в них, i
и j
будут равны "3"; Могу поспорить, что вы хотите позвонить move()
с i
из "0" и j
из "0", но это не то значение, которое они будут иметь после этих входных циклов.
В-третьих, говоря о scan()
, мой компилятор предупреждает о неявном определении scan()
и print()
; из контекста, держу пари, что вы хотите scanf()
и printf()
.
В-четвертых, если вы вводите буквально:
110
101
111
000
000
000
тогда вы даже не делаете это из своих входных циклов. Ваши входные циклы выполняют в общей сложности 18 входов, поэтому ваш ввод будет больше похож на:
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
(Это после того, как я заменил scan()
на scanf()
, согласно моей заметке выше.)
В-пятых, вы объявляете move()
и recursion()
как принимающие в качестве первых параметров тип int[3][3]
, но a
и b
имеют тип int[20][20]
; Ваш ввод заполняется (часть) a
и b
, но вы не сможете передать a
или b
в качестве аргументов массива move()
и recursion()
.
Я даже не изучал логику ваших функций. Вероятно, есть еще несколько вопросов.
Я настоятельно рекомендую вам начать намного меньше и намного проще. например, вот гораздо более простая программа, которая компилируется как есть без предупреждений и даст вам немедленную обратную связь о том, что она делает. Добавьте к этому небольшими шагами, включая соответствующие выходные строки, чтобы вы могли точно видеть, как все это принимает форму.
#include <stdio.h>
int main() {
int i, j, n = 3, input;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &input);
printf("input is : %d\n", input);
}
}
printf("i and j are : %d, %d\n", i, j);
return 0;
}
Удачи вам в изучении C - впереди вас ждут большие вещи!