导航:首页 > 编程语言 > c代码转换成java代码

c代码转换成java代码

发布时间:2022-07-01 17:35:35

❶ 如何将下面c语言代码转换成java代码

完整的直译为java方法是这样的,但是这样写dataLen的值必须小于等于数组长度,不然会出现下标越界的异常

public int accumulativeVerification(int[] data, int dataLen) {
    int sum = 0;
    for (int i = 0; i < dataLen; i++) {
        sum += data[i];
    }
    return sum;
}

如果是意译(计算int数组的所有数之和),那么java可以这样写

public int accumulativeVerification(int[] data) {
    int sum = 0;
    for (int i = 0; i < data.length; i++) {
        sum += data[i];
    }
    return sum;
}

❷ C的函数转换成java

使用词法分析可以简单的进行转换,不过问题是接口,java使用的库类和函数,c并不一定拥有,而且java运行的方式不同(java可以说是解释器的脚本,而c最终变成指令集),并不是简单给出一个函数调用位置就可以解决的,目前的话可以实现个转化器(如果你学过编译原理),但前提是不使用接口,或许我们可以像编译器对string类型的支持那样实现所有java的库操作,但这显然是鸡肋,因为这种方法写的java程序转换后是很难移植的(显然我是说硬件厂商不会为你天真的想法提供接口),并且对c风格来说是一种极大的破坏,最后生成的代码既没有效率也没有可移植性和可读性
结论是你还不如自己实现一个,即使你要转化一个大游戏,这样也有效多了

❸ 怎样把一下的C语言程序改成java程序

修改成Java后的代码:

publicclassDemo{
publicstaticintgcd(inta,intb,intc){
intmin,i;
if(a>b){
if(b>c){
min=c;
}else{
min=b;
}
}else{
if(a>c){
min=c;
}else{
min=a;
}
}
if(b>c){
if(c>a){
min=a;
}else{
min=c;
}
}else{
if(b>a){
min=a;
}else{
min=b;
}
}
if(a>c){
if(c>b){
min=b;
}else{
min=c;
}
}else{
if(a>b){
min=b;
}else{
min=a;
}
}
for(i=min;i>=1;i--){
if(a%i==0&&b%i==0&&c%i==0){
break;
}
}
returni;
}

publicstaticvoidmain(String[]args){
inta=1,b=0,c=0,i,k=0,j=0,m=0,n=0,z,y;
while(a<9){
b=1;
while(b<9){
c=1;
while(c<9){
if(gcd(a,b,c)==1){
System.out.println(a+";"+b+";"+c);
k++;
z=b*b-4*a*c;
if(z==0){
j++;
}elseif(z>0){
m++;
for(y=1;y<z/2;y++){
if(y*y==z){
System.out.println("解答是有理数。");
}
}
}else{
n++;
}
}
c++;
}
b++;
}
a++;
}
System.out.println("N="+k);
System.out.println("N2="+j);
System.out.println("N3="+m);
System.out.println("N4="+n);
i=gcd(a,b,c);
}
}

❹ 把下面C语言代码改成java代码

import java.util.Arrays;
import java.util.Scanner;
public class A {
static final int maxn=100000+5;
static long[] a=new long[maxn],t=new long[maxn];
static long ans=0;

static void mymerge(int x,int m,int y) {
int tx=x,tm=m+1;
int k=0;
while(tx<=m&& tm<=y) {
if(a[tx]<=a[tm])
t[k++]=a[tx++];
else {
ans+=m-tx+1;
a[k++]=a[tm++];
}
}

while(tx<=m) t[k++]=a[tx++];
while(tm<=y) t[k++]=a[tm++];
for(int i=0;i<k;i++)
a[x++]=t[i];
}

static void mergesort(int x,int y) {
if(x==y)return ;

int mid=(x+y)/2;
int xx=x,yy=y;
mergesort(xx,mid);
mergesort(mid+1,yy);
mymerge(xx,mid,yy);
//System.out.println(xx+" "+mid+" "+yy);
}

public static void main(String[] arg) {
int n,k;

Scanner input=new Scanner(System.in);

while(input.hasNext()) {
n=input.nextInt();
k=input.nextInt();

Arrays.fill(a, 0);
Arrays.fill(t, 0);
for(int i=0;i<n;i++) {
a[i]=input.nextLong();
}
ans=0;
mergesort(0, n-1);
if(k>ans)
System.out.println("0");
else
System.out.println((ans-k)+"");
}
}

}

❺ 如何将以下c++代码转成Java代码

1、C++如何接受Java的完全面向对象

JAVA是一种完全面向对象的语言。这意味着你对任何一个Java对象所做的动作都是通过一个方法实现的。

第一点就是,再也没有没有主函数这样的孤立的东西了。取而代之的是,你必须开始用一个对象的看法看待一个程序,一个类的对象。

但是这个对象又什么对象呢? 大多数Java程序只是简单的通过继承Java基础类Object来实现所需要的东西,但是你可以通过创建程序基础类用于多个特性相似的应用程序来节省时间。 严格的面向对象的规定意味着理用原有的C/C++代码不可以直接不加改动的使用;系统调用也是这样的。C++中,你可以通过在C++正常的命名空间外声明extern"C"来使用原有的C的过程调用,包括系统调用。


2、Java在虚拟机上运行

Java源代码并不是被编译成为普通的机器代码。而是被翻译成为虚拟机可以执行的代码。一个Java解释器最终执行这些代码。

这其中没有连接的过程;解释在需要的时候动态的加载一些类; 在Java中,只有一个类似的安全回溯的方法,但是并不是十分简单的方法。你必须定义一个本地方法,其目的是为C语言提供接口,然后提供连接的介质。Java环境提供了完成这种任务的工具,但是整个过程和C++中提供的extern比微不足道,完成使用C++类的过程则更加复杂,因为这样会引入对C的借口和C函数和C++成员函数的问题。


3、许多常用的系统实用工具函数已经在系统类中的方法中提供出来,但是这些明显没有包含经过许多年来你所创建的那些类和过程。

所以,在你需要的时候你应该去钻研一下。 也有一些软件,可以实现C#代码转换java工具 C#转java代码转换工具(C# to Java Converter)一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。

软件已破解,去除了未注册版最多只能转换1000行的限制,亲测可用!压缩包内含帮助文档,不过由于软件的使用很简单,帮助文档基本可以忽略。

❻ 把C语言代码转成Java代码

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;
}

}

❼ 一段C语言程序转换为java的写法谢谢!

按照你的要求,C语言程序转换成的Java程序如下:

publicclassGGG{

(Stringinput_str){

Stringstr_buff_8="",str_buff_10="",str_return="";

longsum8_1=0,sum8_2=0,sum10_1=0,sum10_2=0;//分别存储八进制和十进制不同算法取值的合计for(inti=0;i<input_str.length();i++){//对输入字符串的每一个字节进行循环

str_buff_8+=Integer.toOctalString(input_str.charAt(i));//将ASCII码值转换成八进制字符串

str_buff_10+=Integer.toString(input_str.charAt(i));//将ASCII码值转换成十进制字符串

}

for(inti=1;i<=str_buff_8.length();i++){

sum8_1+=(str_buff_8.charAt(i-1)-'0')*i;

sum8_2+=(str_buff_8.charAt(str_buff_8.length()-i)-'0')*i;

}

for(inti=1;i<=str_buff_10.length();i++){

sum10_1+=(str_buff_10.charAt(i-1)-'0')*i;

sum10_2+=(str_buff_10.charAt(str_buff_10.length()-i)-'0')*i;

}

str_return=""+sum8_1%10+sum8_2%10+sum10_1%10+sum10_2%10;

returnstr_return;

}

publicstaticvoidmain(String[]args){

System.out.println(calculateBillMac("abcdef"));

}

}

运行结果:

2739

这个数据和C语言用字符串"abcdef"测试的结果相同.

❽ 能把下面的c语言代码转换成java代码吗

import java.util.Scanner;

public class Project {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int num, key;

key = sc.nextInt();

while (key-- != 0) {

num = sc.nextInt();

int sum = 0;

int temp = 5;

while (num / temp != 0) {

sum = sum + num / temp;

temp = temp * 5;

}

System.out.println(sum);

}

}

}

格式化代码截图如下:

阅读全文

与c代码转换成java代码相关的资料

热点内容
命令提示符文件夹 浏览:935
韩国电影爱情 浏览:900
任务管理器打开命令行 浏览:861
彼时曾相伴电影努努 浏览:534
主角重生民国参加黄埔 浏览:414
睿威仕无线摄像用什么app 浏览:198
女儿父亲钩引电影 浏览:174
大香蕉手机 浏览:856
安卓部落冲突服务器地址 浏览:324
唐古拉优选app叫什么名字 浏览:38
打开一个文件夹为什么接着就退出 浏览:50
女主高中就怀孕的小说 浏览:10
app为什么必须要获取手机号码 浏览:58
实用的网页编程 浏览:424
宝鸡小程序定制开发源码 浏览:432
十大军事历史穿越小说 浏览:56
爱的共享韩 浏览:179
中文字幕推荐排行榜 浏览:589
李采镡所有电影 浏览:348
前度2未删减 浏览:866