运行结果如下:
代码:
#include <iostream>
using namespace std;
typedef struct _linknode
{
int data;
struct _linknode* next;
}LinkNode;
int main()
{
int i, n;
LinkNode* head, * p, * t;
head = new LinkNode;
head->next = 0;
p = head;
//输入n
cin >> n;
//输入n个数据
for (i = 0; i < n; i++)
{
t = new LinkNode;
cin >> t->data;
t->next = 0;
p->next = t;
p = t;
}
//输出
p = head->next;
int flag = 0;
int sum = 0;
i = 1;
while (p)
{
if (i % 2 == 0)
{
sum += p->data;
if (flag == 0)
{
cout << p->data;
flag = 1;
}
else
cout << " " << p->data;
}
i++;
p = p->next;
}
cout << endl;
cout << sum;
return 0;
}
#include <iostream>
using namespace std;
typedef struct _linknode
{
int data;
struct _linknode *next;
}linknode,*linklist;
void createNode(linklist &head)
{
head = new linknode();
linklist p = head;
int n;
cin>>n;
for(int i=0;i<n;i++)
{
linklist q = new linknode();
cin>>q->data;
q->next = NULL;
p->next = q;
p = q;
}
}
int getsum(linklist head)
{
int i=0,sum=0;
linklist p = head->next;
while(p != NULL)
{
i++;
if(i%2==0)
{
sum += p->data;
cout<<p->data<<" ";
}
p = p->next;
}
if(sum > 0)
cout<<endl;
return sum;
}
int main()
{
linklist head = NULL;
createNode(head);
int s = getsum(head);
cout<<s;
return 0;
}
这题很简单,C++提供了list、map等容器,里面有排序的功能;只要把数字插入进去就可以了!谢谢,望采纳!
#include <iostream>
#include <list>
using namespace std;
int main()
{
int n;
cin >> n;
list<int> l;
for (int i = 0; i < n; i++)
{
int a;
cin >> a;
l.push_back(a);
}
int sum = 0;
int i = 1;
for (auto it = l.begin(); it != l.end(); ++it, i++)
{
if (i % 2 == 0)
{
cout << *it << ' ';
sum += *it;
}
}
cout << '\n' << sum << '\n';
return 0;
}
#include<iostream>
using namespace std;
using Status = int;
using ElemType = int;
/*线性表的单链表存储结构 */
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
/*初始化链表*/
void InitList_L(LinkList &L)
{
LinkList p;
LinkList pre;
int i;
cin>>n;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
pre = L; //当前指针
for (i=1; i<=n; i++){
p = (LinkList)malloc(sizeof(LNode));
cin>>p->data;
pre->next = p;
p->next = NULL;
pre = pre->next; //当前指针后移
}
}
/*输出链表数据*/
void OutputList_L(LinkList &L){
LinkList pre;
pre = L; //当前指针
int sum = 0;
while (pre->next != NULL)
{
pre = pre->next; //指向奇数位序元素
if (pre->next == NULL) break;
else{
pre = pre->next;
sum = sum + pre->data;
cout<<pre->data;
}
}
cout<<endl;
cout<<sum;
}
int main()
{
LinkList L;
InitList_L(L);
if (L->next)
OutputList_L(L);
return 0;
}