C语言编程怎么设计?

从键盘输入一系列整数(不少于3个整数),存储在单链表中.然后从键盘读入一个单独的整数x,输出不大于该数的结点个数?... 从键盘输入一系列整数(不少于3个整数),存储在单链表中.然后从键盘读入一个单独的整数x,输出不大于该数的结点个数? 展开
 我来答
xgn911
2022-10-31 · TA获得超过1354个赞
知道小有建树答主
回答量:1493
采纳率:96%
帮助的人:568万
展开全部

C代码如下:

运行结果如下:

输出符合题意,望采纳~

附源码:

#include <stdio.h>

#include <malloc.h>

typedef struct _LinkNode { // 链表结点

    int val;

    struct _LinkNode *next;

} LinkNode;

LinkNode *initNode(int x) { // 新建一个链表结点

    LinkNode *node = (LinkNode *)malloc(sizeof(LinkNode));

    node->val = x;

    node->next = NULL;

    return node;

}


void printLink(LinkNode *head) { // 打印链表

    if (!head) return;

    printf("%d", head->val);

    head = head->next;

    while (head != NULL) {

        printf("->%d", head->val);

        head = head->next;

    }

    printf("\n");

}

int main() {

    int num, x;

    LinkNode *dummyHead, *curNode; 

    dummyHead = initNode(0); // 伪头结点

    curNode = dummyHead;

    while (scanf("%d", &num)) { // 输入一组整数存储在链表

        curNode->next = initNode(num);

        curNode = curNode->next;

        if (getchar() == '\n') // 换行终止输入

            break;

    }

    printf("生成的链表为:");

    printLink(dummyHead->next);

    scanf("%d", &x); // 读入单独的x

    num = 0;

    curNode = dummyHead->next;

    while (curNode != NULL) {

        if (curNode->val <= x)

            num++;

        curNode = curNode->next;

    }

printf("不大于%d的结点个数为%d\n", x, num);

    return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式