题目描述:
从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出。
思路:题目本身不难,主要是要求链表实现。
#include<bits/stdc++.h>
using namespace std;
struct LinkList
{
int z;
int fu;
LinkList *next;
};
LinkList *BuildList(int n)
{
LinkList *head=NULL;
int zheng,fushu;
while(n--)
{
cin>>zheng>>fushu;
LinkList *new_node=(LinkList *)malloc(sizeof(LinkList));
if(new_node==NULL)
{
fprintf(stderr,"malloc failed");
return head;
}
new_node->z=zheng;
new_node->fu=fushu;
LinkList *p;
if(head==NULL)
{
new_node->next=NULL;
head=new_node;
p=head;
}
else
{
p->next=new_node;
new_node->next=NULL;
p=new_node;
}
}
return head;
}
void CountList(LinkList *head)
{
LinkList *p=head;
int zheng=0,fu=0;
while(p)
{
zheng+=p->z;
fu+=p->fu;
p=p->next;
}
cout<<zheng<<"+"<<fu<<"i"<<endl;
}
int main()
{
int n;
cin>>n;
LinkList *head=BuildList(n);
CountList(head);
return 0;
}