java 编写一个程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 编写一个程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数相关的知识,希望对你有一定的参考价值。
输入 11 结果 为B 输入5 结果为5 输入31结果为错误
import java.util.Scanner;public class TestDemo
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
while(true)
String str = sc.nextLine();
String result = getResult(str);
System.out.println(result);
private static String getResult(String str)
int a = Integer.parseInt(str);
if(a<=15&&a>=0)
return Integer.toHexString(a).toUpperCase();//先转成16进制,然后变成大写
return "错误";
输出
C
11
B
2
2
30
错误 参考技术A 上面那位大神用的应该是之后的做法,我用了一个符合本章内容的方法,看是否符合题主的意思:
import java.util.Scanner;
public class DecToHex
public static void main(String[] args)
// TODO Auto-generated method stub
//enter
Scanner input = new Scanner(System.in);
System.out.print("Enter an integer (0 to 15):");
int decValue = input.nextInt();
//judge
if( decValue < 0 || decValue > 15)
System.out.println("You must enter a number from 0 to 15.");
System.exit(1);
//convert
if(0 <= decValue && decValue <= 9)
System.out.println("The hex digit of dec " + decValue + " is " + decValue);
else if (decValue >= 10 && decValue <= 15)
char ch = (char)(decValue - 10 + 'A');
System.out.println("The hex digit of dec " + decValue + " is " + ch);
else
System.out.println("Invalid input.");
System.exit(1);
input.close();
编写一个程序,提示用户输入球体的半径并打印其体积 [重复]
【中文标题】编写一个程序,提示用户输入球体的半径并打印其体积 [重复]【英文标题】:Write a program that prompts the user for the radius of a sphere and prints its volume [duplicate] 【发布时间】:2016-10-02 15:52:27 【问题描述】:下面的代码我没有得到正确的答案。任何人都可以调试此代码吗? 当我输入半径 = 5 时,我得到的答案是 500.000000,而原始答案应该是 523.80952。谁能解释一下这里出了什么问题?
球体体积公式=4/3(π x r^3)
#include <stdio.h>
int main()
float radius = 0;
float volume;
float pie = 0;
printf("Enter radius");
scanf("%f", &radius);
pie = 22 / 7;
volume = (4*pie*radius*radius*radius)/3;
printf("the volume is %f", volume);
return 0;
【问题讨论】:
"原始答案应该是 523.80952"。不,它应该更像523.598776
(到小数点后 6 位)。 22/7 对 π 的逼近很差。我建议使用更准确的值。
【参考方案1】:
问题出在一行
pie = 22 / 7;
这里,除法的两个操作数都是整数常量,这是一个整数除法,结果被分配给float
,这不是你想要的。您需要通过说来强制进行浮点除法
pie = ((float)22) / 7;
【讨论】:
如果两个操作数都是整数,我总是得到一个整数值吗? 很好奇,为什么将22
称为 整数文字 而不是 整数常量?
@chux 好吧,我不认为integer literal 使用不正确,但按照标准,它是整数常量。还是编辑了。
当然,22.0f / 7.0f
甚至只是22.0f / 7
也应该可以。我个人觉得这比强制浮动更优雅。
@SouravGhosh:我同意。 “字面量”这个词很常见,不仅在 C 语言中。如果像我一样,您使用不同的语言工作,尤其是在其中一种语言中,常量是不同的东西(像circumference
这样的标识符表示像 17
之类的文字,您倾向于使用术语“文字”来表示文字值。【参考方案2】:
你也可以写pie = 3.14 ;
而不是pie = 22 / 7 ;
请记住: (a) 两个整数之间的算术运算总是返回一个整数。 (b) 两个实数之间的算术运算总是返回一个实数。 (c) 整数和实数之间的算术运算返回一个实数。
因此,pie = 22 / 7
将返回 500.000000 而不是 523.80952。
因此你也可以写pie = 22.0 / 7
或pie = 22 / 7.0
或pie = 22.0 / 7.0
。这三个将返回原始答案。
【讨论】:
谢谢,没想到!以上是关于java 编写一个程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数的主要内容,如果未能解决你的问题,请参考以下文章
编写一个简单的Java应用程序,用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。
编写一个简单的Java应用程序,用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。