導航:首頁 > 編程語言 > 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代碼相關的資料

熱點內容
java開發環境搭建linux 瀏覽:741
主角收服白起鬼魂的小說 瀏覽:723
桌面少了一個文件夾不見怎麼找回 瀏覽:270
單片機連接失敗 瀏覽:302
殺破狼2結局什麼意思 瀏覽:497
看電影網址入口 瀏覽:886
天地23有哪些作品txt下載 瀏覽:599
不用付費看視頻的網站 瀏覽:628
皇宮寫肉寫的很細致的小說 瀏覽:561
征服ol怎麼轉移伺服器 瀏覽:705
恐怖電影國語 瀏覽:947
有吃乳汁電影嗎 瀏覽:888
李采潭出演的善良的女老師3 瀏覽:173
台灣影視在線免費看 瀏覽:106
支付寶跳蹬app源碼下載 瀏覽:886
倩女銷魂 紀倩倩 瀏覽:53
周星馳粵語電影 瀏覽:516
5個小時的愛情電影在線觀看 瀏覽:975
求飛機類游戲源碼 瀏覽:406
樂釣app怎麼寫出五星報告 瀏覽:626