把C语言代码转成Java代码

Python07

把C语言代码转成Java代码,第1张

package dis

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.ServletAPI

import 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风格来说是一种极大的破坏,最后生成的代码既没有效率也没有可移植性和可读性

结论是你还不如自己实现一个,即使你要转化一个大游戏,这样也有效多了