import java.io.*
import java.math.*
public class dis
{
public static void main(String [] s) throws Exception
{
Float a,b,c
double x2
double x1
System.out.println("请输入a, b, c的值")
BufferedReader bReader=new BufferedReader(new InputStreamReader(System.in))
a=Float.parseFloat(bReader.readLine())
b=Float.parseFloat(bReader.readLine())
c=Float.parseFloat(bReader.readLine())
if (b*b - 4*a*c <= 0)
System.out.println("输入的系数不对,b2-4ac不大于0!程序退出!")
else
{
x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a
x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a
System.out.println("x1 = "+ x1)
System.out.println("x2 = "+x2)
}
return
}
}
你要把这个转为java程序么?
package org.crazyit.app.ServletAPIimport java.util.Arrays
import java.util.Scanner
public class Test {
public static void main(String[] args) {
char [] ax={'1','2'}
char[] ac = reverse(ax)
System.out.println(Arrays.toString(ac))
char sz[] = new char[128]
System.out.println("请输入你要转换的数 : ")
Scanner scanner = new Scanner(System.in)
int n = scanner.nextInt()
System.out.println("请输入进制 : ")
int c = scanner.nextInt()
cover_to(n, c, sz)
System.out.println("转换成 " + c + "进制是 :" + Arrays.toString(sz))
}
public static void cover_to(int num, int base, char sz[]) {
int t = num
int r = 0
int n = 0
int i = 0
if (base < 2 || base > 32) {
return
}
while ((n = t / base) != t) {
r = t % base
t = n
if (r > 9)
sz[i++] = (char) ('A' + (r - 10))
else
sz[i++] = (char) ('0' + r)
}
sz[i] = 0
reverse(sz)
}
public static char [] reverse(char [] arr) {
int end= arr.length-1
int begin =0
while(begin < end){
char temp = arr[begin]
arr[begin] = arr[end]
arr[end] = temp
begin++
end--
}
return arr
}
}
使用词法分析可以简单的进行转换,不过问题是接口,java使用的库类和函数,c并不一定拥有,而且java运行的方式不同(java可以说是解释器的脚本,而c最终变成指令集),并不是简单给出一个函数调用位置就可以解决的,目前的话可以实现个转化器(如果你学过编译原理),但前提是不使用接口,或许我们可以像编译器对string类型的支持那样实现所有java的库操作,但这显然是鸡肋,因为这种方法写的java程序转换后是很难移植的(显然我是说硬件厂商不会为你天真的想法提供接口),并且对c风格来说是一种极大的破坏,最后生成的代码既没有效率也没有可移植性和可读性结论是你还不如自己实现一个,即使你要转化一个大游戏,这样也有效多了