请选择 进入手机版 | 继续访问电脑版

6-6 求单链表结点的阶乘和 (15分) 带注释

[复制链接]
云韵 发表于 2021-1-1 18:29:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
6-6 求单链表结点的阶乘和 (15分)
本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目包管效果在int范围内。


  1. #include #include typedef struct Node *PtrToNode;struct Node {    int Data; /* 存储结点数据 */    PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 界说单链表范例 */int FactorialSum( List L );int main(){    int N, i;    List L, p;    scanf("%d", &N);    L = NULL;    for ( i=0; iData);        p->Next = L;  L = p;    }    printf("%d\n", FactorialSum(L));    return 0;}/* 你的代码将被嵌在这里 */int FactorialSum( List L ){//本题求阶乘和 实在和求链表内元素总和差不多 遍历就成         int s=0;        int i,u;//i存放当前阶乘值 s存放总和 u存放当前元素值         /*                对不会遍历链表的同学 做出解释                   */ //链表 由节点组成 一个节点内通常有一个值和一个指向下一个节点的指针 //本题  Data是值的名字  Next是下一个节点的指针名字 // L->Data L->Next 才华访问到值和指针 (L是本题的链表首所在) // L=L->Next 就是使当前所在变为原先的下一个节点的所在 // 这就是遍历的要点所在          List p=L;//为方便体现创建一个p 其所在与L相同         for (;p != NULL;) {                u=p->Data;                i=1;//就是遍历元素的时候 顺带来个循环求出阶乘                 while (u) {                        i*=u;                        u--;                }                s+=i;                p=p->Next;//然后指针指向下一个节点  使遍历能够举行         }        return s;}
复制代码
来源:https://blog.csdn.net/qq_46107391/article/details/112006615
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )