c - "too many arguments for format"警告

标签 c matrix adjacency-matrix

#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) 之间是否存在路径。 当我尝试在终端编译时,我得到以下信息:

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.

最佳答案

您的格式说明符“答案是 %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));

关于c - "too many arguments for format"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905479/

相关文章:

c - 指向函数赋值的指针,C

按位语句的说明

matrix - 从 ldpc 奇偶校验矩阵生成生成器矩阵

缩放和捏合时的Android绘图路径

python - 为什么 Mathematica 和 Python 在处理奇异矩阵方程时的答案不同?

c - 从输入中读取多个值类型以在 c 中生成链表

python - 如何使用 python 从 G(n,p) 图创建邻接矩阵?

python - NetworkX adjacency_matrix() 内部如何工作?

python - 在 python 中生成所有可能的 n*n 二进制矩阵

c - 尝试编写计算指定文件中字节数的程序(C语言)