原题链接:蓝桥杯算法训练VIP-链表数据求和操作
无头结点的单链表,只带尾插函数。
#include<bits/stdc++.h> using namespace std; struct node{ double shi,xu; struct node *Next; }; typedef struct node Node; Node *head = NULL; void tailinsert(double shi,double xu){ Node *node = (Node*)malloc(sizeof(node)); Node *temp = head; if(head==NULL){ node->shi = shi; node->xu = xu; node->Next = NULL; head = node; } else{ node->shi = shi; node->xu = xu; node->Next = NULL; while(temp->Next!=NULL){ temp = temp->Next; } temp->Next = node; } } void printlist(){ double sum1(0),sum2(0); Node *temp = head; while(temp!=NULL){ sum1 = sum1 + temp->shi; sum2 = sum2 + temp->xu; temp = temp->Next; } printf("%.f+%.fi",sum1,sum2); } int main() { double shi,xu; while(cin>>shi>>xu){ tailinsert(shi,xu); } printlist(); return 0; }
其实这题用 C++ STL 给的 vector、list 等直接就可以做。(下面用的是 list)
#include<bits/stdc++.h> using namespace std; int main(){ list<pair<double,double> > a; double shi,xu,sum1(0),sum2(0); while(cin>>shi>>xu){ a.push_back(make_pair(shi,xu)); } for(list<pair<double,double> >::iterator it=a.begin();it!=a.end();it++){ sum1 = sum1 + (*it).first; sum2 = sum2 + (*it).second; } printf("%.f+%.fi",sum1,sum2); return 0; }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复