这是C(adjacency.c)中的程序,它检查是否存在从节点a到节点b的有向图方式

# include <stdio.h>
# include <stdlib.h>

#define N 11
#define FALSE 0
#define TRUE 1

typedef  int[N][N] adj_mat;

int path (adj_mat A, int u, int v)






void main()
    {
        adj_mat Matrix;
        int dadnode, sonnode;

        printf("bla-bla-bla enter nodes.\n");
             printf("Press Ctrl+Z after finishing  of bla-bla-bla all the nodes\n");

        do {
            printf("Enter the  number of first node\n");
            scanf("%d", &dadnode);
            printf("Enter the  number of second node\n");
            scanf("%d", &sonnode;);

            if ((dadnode < sonnode) && (sonnode <= N) && (dadnode > 0))
                Matrix[dadnode][sonnode] = 1;
            } while ( (dadnode != EOF ) && (sonnode != EOF));


        printf("Now enter u and v nodes to check if exists way from u node to we node\n")

            printf("Enter the  number of u node\n");
            scanf("%d", &dadnode);
            printf("Enter the  number of v node\n");
            scanf("%d", &sonnode;);

            if ((dadnode < sonnode) && (sonnode <= N) && (dadnode > 0))
             {
                if(path(Matrix,dadnode,sonnode) == TRUE )
                    printf ("Exists way from node u to node v ");
             }

                else printf printf ("Not exists way from node u to node v ");

    }






int path (adj_mat A, int u, int v)
    {
        if (v >= u)
        return FALSE;

        int nodenum;

        for(nodenum = v - 1; nodenum > 0; nodenum-- )

            {
                if (A[nodenum][v] == TRUE)
                {
                    if (nodenum == u) /
                        return TRUE;

                    else if (path (adj_mat A, int u, int nodenum))


                        return TRUE;
                }
            }

        return FALSE;
    }
当我键入命令

我得到

怎么修 ?
更新:谢谢大家的帮助。编译。

最佳答案

您应该将[N][N]部分移到声明的末尾,并在path的正向声明后添加分号。

typedef  int adj_mat[N][N];
int path (adj_mat A, int u, int v);

其余代码中也存在错误:
  • scanf("%d", &sonnode;);具有多余的分号,应为scanf("%d", &sonnode);
  • else printf printf应该是else printf
  • 一些地方缺少分号
  • /在不应出现的一行的末尾
  • main需要返回一个int
  • 关于c - “ ‘(’ token 之前的预期标识符或 ‘[’, “error: expected ‘)’之前的 ‘A’”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10365859/

    10-12 17:48