原题链接:蓝桥杯算法训练VIP-链表数据求和操作
解题思路:
注意事项:
参考代码:
#include<stdio.h> #include<stdlib.h> typedef struct plural{ //定义结构体变量 int real; int unreal; struct plural* next; }* node,Node; node creat();//创建链表 void output(node linked);//获取链表数据 void delete_linked(node header);//删除链表 //主函数 /*----------------------------------------------------------*/ int main() { int a,b;//实部和虚部 node head; head = creat(); output(head); return 0; } //创建链表 /*----------------------------------------------------------*/ node creat() { node header;//定义头结点 header = (node)malloc(sizeof(Node));//为头结点开辟空间 header->next=NULL;//将头结点的next置为空NULL node tail=header;//定义一个临时变量tail储存header node insert;//定义插入结点的变量 for(int i=0;i<10;i++)//输入10个结点 { insert = (node)malloc(sizeof(Node)); scanf("%d %d",&insert->real,&insert->unreal);//输入插入结点的值 insert->next = NULL;//采用后插法插入结点 tail->next = insert; tail = insert; } return header;//返回头结点 } //获取链表数据并释放结点 /*----------------------------------------------------------*/ void output(node linked) //定义一个头结点 { int sum_real=0,sum_unreal=0; linked = linked->next;//初始化链表linked指向下一个结点next node free_flag;//定义一个变量用于释放结点 while(linked != NULL) { sum_real += linked->real;//结点实部的累计和 sum_unreal += linked->unreal;//结点虚部的累计和 free_flag = linked;//将结点数据赋值给free_flag便于下方释放结点 linked = linked->next;//刷新结点 free(free_flag);//释放结点空间 } printf("%d+%di",sum_real,sum_unreal);//打印所有结点数据的和 }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复