c - "too many arguments for format" warning -


#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));