c++的问题,用c++的方法

img


c++的相关问题,用c++的思路解决,不要用别的,懂的人看看

运行结果如下:

img

代码:

#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;
}