qq_53943552 2021-10-10 11:11 采纳率: 100%
浏览 211
已结题

出现error: expected ';', ',' or ')' before '&' token,如何用用指针来取代引用,在主函数中传进来地址

平台编译器不支持c++,有没有人帮帮忙看一下要怎么改啊

#include <stdio.h>
#include <malloc.h>
// 链表节点结构
typedef struct Node {
    int data;
    struct Node* next;
}Node, * LinkList;
// 输出单链表
void show(LinkList L) 
{
    L->data == -1 ? 0 : printf(L->data == 0 ? "%d\n无公共元素\n" : "%d\n", L->data);
    Node* p = L->next;
    while (p) {
        printf("%d ", p->data);
        p = p->next;
    }
    printf("\n");
}
LinkList findCommonNodes(LinkList L1, LinkList L2) 
{
    LinkList L = (Node*)malloc(sizeof(Node));
    L->data = 0;
    L->next = NULL;
    Node* p = L1->next, * pL = L;
    while (p) {
        Node* q = L2->next;
        while (q) 
        {
            if (p->data == q->data) {
                Node* f = (Node*)malloc(sizeof(Node));
                f->next = NULL;
                f->data = q->data;
                L->data++;
                pL->next = f;
                pL = f;
                break;
            }
            q = q->next;
        }
        p = p->next;
    }
    return L;
}
// 创建链表 
void createListFromHead(LinkList L)
{
    Node* pL;
    int n, i;
    L = (Node*)malloc(sizeof(Node));// 创建头 
    L->data = -1;
    L->next = NULL;
    pL = L;
    scanf("%d", &n);
    for (i = 0; i < n; i++) {// 生成链表 
        Node* p = (Node*)malloc(sizeof(Node));
        p->next = NULL;
        scanf("%d", &p->data);
        pL->next = p;
        pL = p;
    }
}
int main() 
{
    LinkList L1, L2, L =0;
    createListFromHead(L1);
    createListFromHead(L2);
    //show(L1);
    //show(L2);
    show(L = findCommonNodes(L1, L2));
    return 0;
}
 

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2021-10-10 14:16
    关注

    指针版的这么改,其他地方不用动, 供参考对照:

    //**************  指针版: 指针写法  ******************
    
    
    #include <stdio.h>
    #include <malloc.h>
    // 链表节点结构
    typedef struct Node {
        int    data;
        struct Node* next;
    }Node, * LinkList;
    // 输出单链表
    void show(LinkList L)
    {
        L->data == -1 ? NULL : printf(L->data == 0 ? "%d\n无公共元素" : "%d\n", L->data);
        Node* p = L->next;
        while (p) {
            printf("%d ", p->data);
            p = p->next;
        }
        printf("\n");
    }
    LinkList findCommonNodes(LinkList L1, LinkList L2)
    {
        LinkList L = (Node*)malloc(sizeof(Node));
        L->data = 0;
        L->next = NULL;
        Node* p = L1->next, * pL = L;
        while (p) {
            Node* q = L2->next;
            while (q)
            {
                if (p->data == q->data) {
                    Node* f = (Node*)malloc(sizeof(Node));
                    f->next = NULL;
                    f->data = q->data;
                    L->data++;
                    pL->next = f;
                    pL = f;
                    break;
                }
                q = q->next;
            }
            p = p->next;
        }
        return L;
    }
    // 创建链表 
    void createListFromHead(LinkList* L)
    {
        Node* pL;
        int n, i;
        (*L) = (Node*)malloc(sizeof(Node));// 创建头
        (*L)->data = -1;
        (*L)->next = NULL;
        pL = (*L);
        scanf("%d", &n);
        for (i = 0; i < n; i++) {// 生成链表
            Node* p = (Node*)malloc(sizeof(Node));
            p->next = NULL;
            scanf("%d", &p->data);
            pL->next = p;
            pL = p;
        }
    }
    int main()
    {
        LinkList L1, L2, L = NULL;
        createListFromHead(&L1);
        createListFromHead(&L2);
        //show(L1);
        //show(L2);
        show(L = findCommonNodes(L1, L2));
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?