#include <stdio.h> #define n 11 enum {false, true}; typedef int adj_mat[n][n]; int path2(adj_mat a, int u, int v, int temp) { if(u == temp && a[u][v] == true) return true; if(a[u][v] == false) return path2(a, u-1, v, temp); if(a[u][v] == true) return path2(a, n, u, temp); return false; } int path(adj_mat a, int u, int v) { return path2(a, n, v, u); } int main() { int arr[n][n]= {{0,1,1,1,0,0,0,0,0,0,0},{0,0,0,0,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0}}; int u; int v; printf("please enter 2 numbers \n"); scanf("%d %d", &u, &v); printf("the answer %d" "\n", path(arr, u, v),".\n"); return 0; }
the program needs check if there path between 2 given indexes (u,v) in given 11x11 matrix represents tree. when try compile @ terminal massege:
adjacency.c:41:1: warning: many arguments format [-wformat-extra-args] besides that, program doesnt work. if enter (1,8) supposed return true returns false.
your format specifier "the answer %d""\n"
1 argument, pass two, path(arr, u, v)
, ".\n"
:
printf("the answer %d" "\n", path(arr, u, v),".\n");
presumably need
printf("the answer %d.\n", path(arr, u, v));