顾相言丶 2021-07-15 14:32 采纳率: 50%
浏览 70
已采纳

给定一个正数,将其倒转并输出。

不是正整数,有可能有小数
且小数部分不超过五位数

  • 写回答

2条回答 默认 最新

  • 黑马星云 2021-07-15 14:41
    关注

    望采纳!!

    #include<bits/stdc++.h>
    using namespace std;
     
    class fudian
    {
    public:
        fudian(const char *ss)
        {
            len=strlen(ss);
            s=(char*)malloc(len+1);
            strcpy(s,ss);
        }
        void init(const char *ss)
        {
            len=strlen(ss);
            s=(char*)malloc(len+1);
            strcpy(s,ss);
        }
        ~fudian()
        {
            if(s!=NULL)
                free(s);
            s=NULL;
            len=0;
        }
        int getlen()
        {
            //cout<<len<<endl;
            return len;
        }
        void print()
        {
            int flag = 1,i,d;
            int pointer=0;
            //char *c;
            //c=(char*)malloc(len);
            for(i = 0; s[i]; ++i) 
            {
                if(s[i] == '.') 
                {
                flag = 0;
                d = i;
                break;
                }
             }
            if(flag) {  // 没有小数点,当然可能性不大
                printf("整数部分:");
                for(i = 0; s[i]; ++i)
                {
                    printf("%c ",s[i]);
                    pointer=i;
                //    c[i]=s[i];
                }
                
                printf("\n");
            }
            else {
                printf("整数部分:");
                for(i = 0; s[i] != '.'; ++i)
                {
                    printf("%c ",s[i]);
                    //c[i]=s[i];
                }
                printf("\n");
                printf("小数部分:");
                for(++i; s[i]; ++i)
                {
                    printf("%c ",s[i]);
                    //c[i]=s[i];
                }
     
                printf("\n");
                
        }
        }
        void diverse()
        {
            int i;
            printf("逆序结果为:");
            for(i=len-1;i>=0;i--)//逆序输出
            {
            printf("%c",s[i]);
           /* if(i!=0) 
                printf(" ");//不取消掉最后一个空格可能会造成格式错误
            */
            }
            printf("\n");
            
        }
     
    private:
        int len;
        char *s;
    };
     
    /*int main01()
    {
        fudian obj1("32.01");
        cout<<obj1.getlen()<<endl;
        obj1.print ();
        obj1.diverse ();
        return 0;
    }*/
    int main()
    {
        char m[20];
        cout<<"请输入浮点数:"<<endl;
        cin>>m;
        fudian obj1(m);
     
        
        //obj1.init (m);
        
        //m=strlen(pp);
        //char *p = new char[m];
     
     
        //fudian obj1("32.01");
        
        //cout<<obj1.getlen()<<endl;
        obj1.print ();
        obj1.diverse ();
     
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月15日
  • 创建了问题 7月15日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?