解题思路:

注意事项:

参考代码:

#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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论