zoukankan      html  css  js  c++  java
  • C++程序设计实践指导1.3求任意整数降序数改写要求实现

    改写要求1:动态生成单链表存储

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    struct LinkNode
    {
           int data;
          struct LinkNode *next;
    };
    class NUM
    {
          int n;
          public:
                 NUM(int x)
                 {
                          n=x;
                 }
                  struct LinkNode * descrease();
                 void show(LinkNode* pHead)
                 {
                      LinkNode* p;
                      p=pHead;
                      p=p->next;
                      cout<<"n= "<<n<<endl;
                      while(p)
                      {
                              cout<<p->data;
                              p=p->next;
                      }
                      cout<<endl;
                 }
    };
    
    struct LinkNode * NUM::descrease()
    {
         LinkNode* pHead=new LinkNode;
         pHead->next=NULL;
         LinkNode* p;
         LinkNode* q;
         p=pHead;
         int temp;
         int x=n;
         while(x)
         {
                 LinkNode* newLinkNode=new LinkNode;
                 newLinkNode->next=NULL;
                 newLinkNode->data=x%10;
                 x=x/10;
                 p->next=newLinkNode;
                 p=newLinkNode;
         }
         for(p=pHead;p!=NULL;p=p->next)
             for(q=p->next;q!=NULL;q=q->next)
           {
    			if(p->data<q->data)
    			{
    				temp=q->data;
    				q->data=p->data;
    				p->data=temp;
    			}
          } 
           return pHead;                               
    }
                 
    int main(int argc, char *argv[])
    {
        int n;
        LinkNode* pHead;
        cout<<"Input n: ";
        cin>>n;
        NUM num(n);
        pHead=num.descrease();
        num.show(pHead);
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

      改写要求2:以最大、最小、次最大、次最小等间隔排序

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    struct LinkNode
    {
           int data;
          struct LinkNode *next;
    };
    class NUM
    {
          int n;
          int sum;
          public:
                 NUM(int x)
                 {
                          n=x;
                 }
                  struct LinkNode * descrease();
                 void show(LinkNode* pHead)
                 {
                      LinkNode* p;
                      p=pHead;
                      p=p->next;
                      cout<<"n= "<<n<<endl;
                      cout<<"sum= "<<sum<<endl;
                      while(p)
                      {
                              cout<<p->data;
                              p=p->next;
                      }
                      cout<<endl;
                 }
    };
    
    struct LinkNode * NUM::descrease()
    {
         LinkNode* pHead=new LinkNode;
         pHead->next=NULL;
         LinkNode* p;
         LinkNode* q;
         p=pHead;
         int temp;
         int x=n;
         bool flag=true;
         sum=0;
         while(x)
         {
                 LinkNode* newLinkNode=new LinkNode;
                 newLinkNode->next=NULL;
                 newLinkNode->data=x%10;
                 sum+=newLinkNode->data;
                 x=x/10;
                 p->next=newLinkNode;
                 p=newLinkNode;
                 
         }
         for(p=pHead->next;p!=NULL;p=p->next)
        {
        if(flag)
         {
             for(q=p->next;q!=NULL;q=q->next)
           {
                if(p->data<q->data)
                {
                    temp=q->data;
                    q->data=p->data;
                    p->data=temp;
                }
          }
          
         }else{
            for(q=p->next;q!=NULL;q=q->next)
           {
                if(p->data>q->data)
                {
                    temp=q->data;
                    q->data=p->data;
                    p->data=temp;
                }
            } 
         
         }
         flag=!flag;
         }
           return pHead;                               
    }
                 
    int main(int argc, char *argv[])
    {
        int n;
        LinkNode* pHead;
        cout<<"Input n: ";
        cin>>n;
        NUM num(n);
        pHead=num.descrease();
        num.show(pHead);
        system("PAUSE");
        return EXIT_SUCCESS;
    }
  • 相关阅读:
    编码转换,基础补充,深浅拷贝,id is == ,代码块(了解),小数据池(了解)
    字典(dict),字典的嵌套,集合(set)
    列表,列表的增删改查,列表的嵌套,range
    整数,布尔值,字符串,字符串详解.
    [小明学Shader]4.自定义光照----RampTexture
    [小明学Shader]3.自定义光照,半拉姆伯特
    [小明学Shader]2.理解Shader和Material的关系
    [小明学Shader]1.Diffuse
    [UGUI]你说UnityEngine.UI.Button是怎么通过拖动来增加OnClick的监听器的呢?
    [小明也得懂架构]1.架构初探
  • 原文地址:https://www.cnblogs.com/c5395348/p/4271930.html
Copyright © 2011-2022 走看看