"too many arguments for format" 警告
"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 two numbers \n");
scanf("%d %d", &u, &v);
printf("The answer is %d" "\n", path(arr, u, v),".\n");
return 0;
}
程序需要检查在表示树的给定 11X11 矩阵中的 2 个给定索引 (u,v) 之间是否存在路径。
当我尝试在终端编译时,我得到了这个 massege:
adjacency.c:41:1: warning: too many arguments for format [-Wformat-extra-args]
besides that, the program doesnt work. if i enter (1,8) it supposed to return true but it returns false.
您的格式说明符 "The answer is %d""\n"
用于一个参数,但您传递了两个参数,path(arr, u, v)
和 ".\n"
:
printf("The answer is %d" "\n", path(arr, u, v),".\n");
想必你需要
printf("The answer is %d.\n", path(arr, u, v));
#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 two numbers \n");
scanf("%d %d", &u, &v);
printf("The answer is %d" "\n", path(arr, u, v),".\n");
return 0;
}
程序需要检查在表示树的给定 11X11 矩阵中的 2 个给定索引 (u,v) 之间是否存在路径。 当我尝试在终端编译时,我得到了这个 massege:
adjacency.c:41:1: warning: too many arguments for format [-Wformat-extra-args] besides that, the program doesnt work. if i enter (1,8) it supposed to return true but it returns false.
您的格式说明符 "The answer is %d""\n"
用于一个参数,但您传递了两个参数,path(arr, u, v)
和 ".\n"
:
printf("The answer is %d" "\n", path(arr, u, v),".\n");
想必你需要
printf("The answer is %d.\n", path(arr, u, v));