m0_63145759 2021-12-18 15:12 采纳率: 84.2%
浏览 21
已结题

为什么输入的数大了就不行了?是什么错误?能解答一下吗?

import java.util.Scanner;
public class transformation{
public double A(double x){//十进制转二进制
int y=(int)x;
int a,b,c=1,d,sum=0;
while(y>=1){
a=y/2;
b=y%2;
y=a;
d=cb;
c=c
10;
sum=sum+d;
}
int i=1,b1;double sum1=0;
double f=x-(int)x,a1,c1=0.1,d1;
while(f!=0){
a1=f2;
b1=(int)a1;
f=a1-b1;
d1=c1
b1;
c1=c10.1;
sum1=sum1+d1;
i++;
if(i==5){
break;
}
}
return sum+sum1;
}
public int B(String N){//二进制转十进制
int sum=0,j=1,n=1;
for(int i=N.length()-1;i>=0;i--){
char ch=N.charAt(i);
switch(ch){
case '0':int x=0;
n=x
j;
break;
case '1': x=1;
n=xj;
}
j=j
2;
sum=sum+n;
}
return sum;
}
public static void main(String[] args){
Scanner reader=new Scanner(System.in);
transformation me=new transformation();
System.out.println("请选择操作:1,十进制转二进制 2,二进制转十进制");
int a=reader.nextInt();
for(;a!=1&&a!=2;){
System.out.println("输入错误,请重新输入");
a=reader.nextInt();
}
if(a==1){
System.out.println("请输入一个十进制数");
double b=reader.nextDouble();
System.out.println("这个数的二进制数为:"+me.A(b));
}
if(a==2){
System.out.println("请输入一个二进制数");
String c=reader.next();
System.out.println("这个数的十进制数为:"+me.B(c));
}
}
}

img

  • 写回答

1条回答 默认 最新

  • CTimet 2021-12-18 16:45
    关注

    你这个代码。。。我放到IDEA里整理之后出了问题啊

    img


    img


    这些都是不知道哪里声明过的变量。我直接全复制下来,放IDEA里就冒红了。你这个代码里的这些变量又没有注释,别人压根没法看。而且变量命名完全是随性命名的,压根看不出这些变量啥意思。找吧又找不着在哪里声明过。
    emm。总之,我是帮不了你了。我发这个回答只是想让你把发出来的代码优化一下,加点注释啥的。你这个变量命名太随性了,而且一点注释都没有。我复制完代码都直接看蒙了。你如果不优化一下问题,加点注释的话,我估计别人来了看了也一脸懵。
    PS:以下是我整理后的代码,不过没加注释。这里面变量用的太多了。其他的想要帮助题主的朋友,可以看我整理后的代码。原题的代码完全没有整理,看了直接一脸懵。可以看我这个,我这个对代码的层次进行了整理,能轻松看出层次。其他想要帮助题主的朋友可以看这个:

    import java.util.Scanner;
    
    public class transformation{
        public double A(double x)//十进制转二进制
        {
            int y=(int)x;
            int a,b,c=1,d,sum=0;
            while(y>=1){
                a=y/2;
                b=y%2;
                y=a;
                d=cb;
                c=c10;
                sum=sum+d;
            }
            int i=1,b1; double sum1=0;
            double f=x-(int)x,a1,c1=0.1,d1;
            while(f!=0)
            {
                a1=f2;
                b1=(int)a1;
                f=a1-b1;
                d1=c1b1;
                c1=c10.1;
                sum1=sum1+d1;
                i++;
                if(i==5)
                {
                    break;
                }
            }
            return sum+sum1;
        }
        public int B(String N)//二进制转十进制
        {
            int sum=0,j=1,n=1;
            for(int i=N.length()-1; i>=0; i--)
            {
                char ch=N.charAt(i);
                switch(ch)
                {
                    case '0':
                        int x=0;
                        n=xj;
                        break;
                    case '1':
                        x=1;
                        n=xj;
                }
                j=j2;
                sum=sum+n;
            }
            return sum;
        }
        public static void main(String[] args)
        {
            Scanner reader=new Scanner(System.in);
            transformation me=new transformation();
            System.out.println("请选择操作:1,十进制转二进制 2,二进制转十进制");
            int a=reader.nextInt();
            for(; a!=1&&a!=2;)
            {
                System.out.println("输入错误,请重新输入");
                a=reader.nextInt();
            }
            if(a==1)
            {
                System.out.println("请输入一个十进制数");
                double b=reader.nextDouble();
                System.out.println("这个数的二进制数为:"+me. A(b));
            }
            if(a==2){
                System.out.println("请输入一个二进制数");
                String c=reader.next();
                System.out.println("这个数的十进制数为:"+me. B(c));
            }
        }
    }
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥100 如何寻找到黑客帮助,愿意付丰厚的酬劳
  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败