怎么做
  1. 题面里的虚线方框就是要填的空
  2. 点候选项,它会填进当前高亮的那个空
  3. 点已填好的空,可以把选项取回来重选
  4. 全部填满后「提交」才会亮起
卡住了就点右下角的 👩‍🏫 问 AI 老师,她会给提示但不直接给答案。

冲刺 · 二级程序填空:带头结点的链表求和

👁️ 18 人浏览 💬 0 人评论 ❤️ 添加收藏

creat 建立一个带头结点的链表(头结点不放数据),fun 求所有数据结点的和。程序输出 45。请填空。

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

typedef struct node
{
    int data;
    struct node *next;
} NODE;

int fun(NODE *h)
{
    int s = 0;
    NODE *p = 【0】;
    while (p != NULL)
    {
        s += 【1】;
        p = 【2】;
    }
    return s;
}

NODE *creat(int a[], int n)
{
    NODE *h, *p, *q;
    int i;
    h = (NODE *)malloc(sizeof(NODE));
    h->data = 0;
    p = h;
    for (i = 0; i < n; i++)
    {
        q = (NODE *)malloc(sizeof(NODE));
        q->data = a[i];
        p->next = q;
        p = q;
    }
    p->next = NULL;
    return h;
}

int main(void)
{
    int a[4] = {12, 5, 8, 20};
    NODE *h = creat(a, 4), *p;
    printf("%d\n", fun(h));
    while (h != NULL)
    {
        p = h->next;
        free(h);
        h = p;
    }
    return 0;
}
请登录后作答。
去登录
👩‍🏫
AI
💬 题目评论
🔒 登录并作答后可看讨论