当前位置: 首页 > news >正文

知乎 淘宝网站建设php英文商城网站建设

知乎 淘宝网站建设,php英文商城网站建设,seo公司上海,沈阳做网站在哪题目描述 读入10个复数,建立对应链表,然后求所有复数的和。 输入格式 无 输出格式 无 样例输入 1 2 1 3 4 5 2 3 3 1 2 1 4 2 2 2 3 3 1 1 样例输出 2323i 代码功能概述 createNode 函数: 创建一个包含 10 个复数节点的链表。 每个…

题目描述

读入10个复数,建立对应链表,然后求所有复数的和。

输入格式

输出格式

样例输入

1 2
1 3
4 5
2 3
3 1
2 1
4 2
2 2
3 3
1 1

样例输出

23+23i

代码功能概述

  1. createNode 函数

    • 创建一个包含 10 个复数节点的链表。

    • 每个节点存储复数的实部 (real) 和虚部 (image)。

  2. sumNode 函数

    • 遍历链表,计算链表中所有复数的和。

    • 释放链表中的节点内存,并输出最终的求和结果。

  3. main 函数

    • 调用 createNode 创建链表。

    • 调用 sumNode 对链表中的复数进行求和。

代码解析

1. 头文件和结构体定义
#include <stdio.h>
#include <stdlib.h>typedef struct Node
{int real;int image;struct Node *next;
} Node;
  • #include <stdio.h>:包含标准输入输出函数(如 scanfprintf)。

  • #include <stdlib.h>:包含内存管理函数(如 mallocfree)。

  • typedef struct Node:定义了一个链表节点结构体 Node,包含:

    • real:存储复数的实部。

    • image:存储复数的虚部。

    • next:指向下一个节点的指针。

2. 创建链表函数 (createNode)
Node *createNode()
{Node *head, *p, *q;head = (Node*)malloc(sizeof(Node)); // 创建头节点p = head;for (int i = 0; i < 10; i++){q = (Node*)malloc(sizeof(Node)); // 创建新节点scanf("%d%d", &q->real, &q->image); // 输入实部和虚部q->next = NULL; // 新节点的下一节点初始化为 NULLp->next = q; // 将新节点链接到链表p = q; // 移动指针到新节点}return head; // 返回链表头指针
}
  • head:链表的头节点。

  • pq:指针变量,用于遍历链表和创建新节点。

  • 循环 10 次:创建 10 个复数节点,每次输入一个复数的实部和虚部。

  • 链表链接:每个新节点的 next 指向新分配的节点,形成链表。

3. 链表求和函数 (sumNode)
void sumNode(Node *head)
{Node *newNode = (Node*)malloc(sizeof(Node));Node *p = head->next; // 从第一个数据节点开始Node *q;newNode->real = 0; // 初始化求和的实部和虚部newNode->image = 0;newNode->next = NULL;while (p != NULL) // 遍历链表{newNode->real += p->real; // 累加实部newNode->image += p->image; // 累加虚部q = p; // 保存当前节点指针p = p->next; // 移动到下一个节点free(q); // 释放当前节点内存}printf("%d+%di\n", newNode->real, newNode->image); // 输出求和结果return newNode; // 返回求和节点指针(注意:返回类型不正确,应该是 void)
}
  • newNode:用于存储求和结果的新节点。

  • p:遍历链表的指针,从头节点的下一个节点开始。

  • while 循环:遍历链表中的每个节点,累加实部和虚部。

  • 释放内存:每次遍历一个节点时,释放该节点的内存。

  • 输出结果:以 实部+虚部i 的格式输出求和结果。

4. 主函数 (main
int main(void)
{Node *head;head = createNode(); // 创建链表sumNode(head); // 求和并输出结果return 0;
}
  • 调用 createNode 创建链表。

  • 调用 sumNode 对链表中的复数进行求和并输出结果。

注意事项

  1. 内存泄漏

    • sumNode 函数中释放了链表中的所有节点,但没有释放头节点 head

    • 如果需要完整的内存管理,应在 sumNode 函数中添加对 head 的释放。

  2. sumNode 的返回值

    • 函数声明的返回类型是 void,但代码中返回了 newNode,这会导致编译错误。应移除或注释掉 return newNode;

  3. 用户输入

    • 如果输入的复数个数少于 10 个,程序会崩溃。建议添加输入验证。

示例运行

假设输入以下 10 个复数:

1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20

输出将是:

100+110i

总结

这段代码实现了一个简单的链表复数求和功能,适合初学者学习链表的基本操作。

源代码

#include <stdio.h>
#include <stdlib.h>typedef struct Node
{int real;int image;struct Node *next;
}Node;Node *createNode()
{Node *head,*p,*q;head = (Node*)malloc (sizeof(Node));p = head;for(int i = 0; i<10; i++){q = (Node*)malloc(sizeof(Node));scanf("%d%d",&q->real,&q->image);q->next = NULL;p->next = q;p = q;}return head;
}void sumNode(Node *head)
{Node *newNode = (Node*)malloc(sizeof(Node));Node *p = head->next;Node *q;newNode->real = 0;newNode->image = 0;newNode->next = NULL;while (p != NULL){newNode->real += p->real;newNode->image += p->image;q = p;p = p->next;free(q);}printf("%d+%di\n",newNode->real,newNode->image);return newNode;
}int main(void)
{Node *head;head = createNode();sumNode(head);return 0;
}

http://www.dtcms.com/a/534239.html

相关文章:

  • 建设工程信息发布网站用h5开发的网站模板下载
  • 免费源码交易网站源码廊坊建站
  • 当.NET 9遇见AI智能体:AntSK企业级知识库的技术革命与实战解析
  • 哪个网站做长图免费转高清高端网站建设个人
  • 海原网站建设在线代理上网
  • 网上购物网站模板安装wordpress 403
  • 郑州官网seo推广上海网站自然排名优化价格
  • 如何查看网站开发公司《新闻联播》正在直播
  • 可以做策略回测的网站网站建设维护公司资质
  • 荣成网站制作公司网站浏览记录怎么做
  • 做空间的网站电子网站建设前台设计
  • 太原微网站建设制作一个网站一般先要明确
  • 那除了ui组件像角色大小这种 不用随着分辨率改还是啥
  • 做一个网站设计要多少钱沈阳网络平台推广公司
  • SCSegamba:用于结构裂缝分割的轻量级结构感知视觉Mamba网络
  • 多个网站域名 是新增接入东莞市建网站制作方案
  • 网站搜索防止攻击wordpress中文标题转换拼音插件
  • WordPress首页站内搜索个人简历ppt模板免费
  • 国外网站dns网站开发后端 书
  • 网站做cpa赚钱吗邯郸招工信息网
  • Windows本地部署3DGS
  • 二手交易网站开发方式类似于拼多多的网站怎么做
  • 数据产品——聊一聊数据埋点体系
  • 辽宁建设工程信息网直接发包工程seo做的比较牛的公司
  • 自定义网站建站公司安阳市网站建设
  • 二级院系网站建设情况金融网站建设公司排名
  • 再谈Socket编程中阻塞/非阻塞模式
  • AI Agent的未来之争:任务规划,该由人主导还是AI自主?
  • 南京建设银行网站西安网站群建设
  • 免费做抽奖的h5网站网站设计多少钱市场价