
帮忙将下面代码改成java的,谢谢!麻烦尽量规范一点哦! 20
#include<stdio.h>#include<string>usingnamespacestd;intmain(){intinta[31];boolcheck[31...
#include < stdio.h>
#include < string>
usingnamespace std;
int main()
{
int inta[31];
bool check[31];
int i , j ;
int num ;
int sam , ella ;
int flag ;
while(scanf("%d",&num ) )
{
if ( num == 0 )
break;
ella = 0 ;
sam = 0 ;
flag =0 ;
for(i = 0 ; i< num ;i++)
scanf("%d",&inta[i]) ;
memset(check , true, sizeof(check) );
for( i = 0 ,j = num -1; i < num , j>=0 ; )
{
if( !check[i] && !check[j] )
{
if( sam == ella )
flag = 1 ;
break;
}
if(ella > sam && check[i] )
{
sam += inta[i] ;
check[i] = false ;
i++ ;
}
elseif(sam > ella )
{
ella += inta[j];
check[j] = false ;
j--;
}
else
{
sam += inta[i] ;
ella += inta[j];
check[i] = false ;
check[j] = false ;
i++ ;
j --;
}
}
if( flag == 1 )
printf("Sam stops at position %d and Ella stops at position %d.\n",i ,
i+1 );
else
printf("No equal partitioning.\n");
}
return0 ;
} 展开
#include < string>
usingnamespace std;
int main()
{
int inta[31];
bool check[31];
int i , j ;
int num ;
int sam , ella ;
int flag ;
while(scanf("%d",&num ) )
{
if ( num == 0 )
break;
ella = 0 ;
sam = 0 ;
flag =0 ;
for(i = 0 ; i< num ;i++)
scanf("%d",&inta[i]) ;
memset(check , true, sizeof(check) );
for( i = 0 ,j = num -1; i < num , j>=0 ; )
{
if( !check[i] && !check[j] )
{
if( sam == ella )
flag = 1 ;
break;
}
if(ella > sam && check[i] )
{
sam += inta[i] ;
check[i] = false ;
i++ ;
}
elseif(sam > ella )
{
ella += inta[j];
check[j] = false ;
j--;
}
else
{
sam += inta[i] ;
ella += inta[j];
check[i] = false ;
check[j] = false ;
i++ ;
j --;
}
}
if( flag == 1 )
printf("Sam stops at position %d and Ella stops at position %d.\n",i ,
i+1 );
else
printf("No equal partitioning.\n");
}
return0 ;
} 展开
展开全部
改是帮你改过来了,不过你那个 memset(check , true, sizeof(check) );好像Java中不认识,剩下的你自己弄了,格式是转过来了;
import java.util.Scanner;
public class bianJava {
public int main()
{
int inta[]=new int[31];
boolean check[]=new boolean[31];
int i , j ;
int sam , ella ;
int flag ;
Scanner in=new Scanner(System.in);
int num=in.nextInt();
while(num!=0)
{
if ( num == 0 )
break;
ella = 0 ;
sam = 0 ;
flag =0 ;
for(i = 0 ; i< num ;i++)
inta[i]=in.nextInt();
memset(check , true, sizeof(check) );
for( i = 0 ,j = num -1; i < num , j>=0 ; i++)
{
if( !check[i] && !check[j] )
{
if( sam == ella )
flag = 1 ;
break;
}
if(ella > sam && check[i] )
{
sam += inta[i] ;
check[i] = false ;
i++ ;
}
else if(sam > ella )
{
ella += inta[j];
check[j] = false ;
j--;
}
else
{
sam += inta[i] ;
ella += inta[j];
check[i] = false ;
check[j] = false ;
i++ ;
j --;
}
}
if( flag == 1 )
System.out.println("Sam stops at position"+ i +"and Ella stops at position "+(i+1) );
else
System.out.println("No equal partitioning.");
}
return 0 ;
}
}
import java.util.Scanner;
public class bianJava {
public int main()
{
int inta[]=new int[31];
boolean check[]=new boolean[31];
int i , j ;
int sam , ella ;
int flag ;
Scanner in=new Scanner(System.in);
int num=in.nextInt();
while(num!=0)
{
if ( num == 0 )
break;
ella = 0 ;
sam = 0 ;
flag =0 ;
for(i = 0 ; i< num ;i++)
inta[i]=in.nextInt();
memset(check , true, sizeof(check) );
for( i = 0 ,j = num -1; i < num , j>=0 ; i++)
{
if( !check[i] && !check[j] )
{
if( sam == ella )
flag = 1 ;
break;
}
if(ella > sam && check[i] )
{
sam += inta[i] ;
check[i] = false ;
i++ ;
}
else if(sam > ella )
{
ella += inta[j];
check[j] = false ;
j--;
}
else
{
sam += inta[i] ;
ella += inta[j];
check[i] = false ;
check[j] = false ;
i++ ;
j --;
}
}
if( flag == 1 )
System.out.println("Sam stops at position"+ i +"and Ella stops at position "+(i+1) );
else
System.out.println("No equal partitioning.");
}
return 0 ;
}
}
更多追问追答
追问
在java中这句代码应该怎么写呢?
memset(check , true, sizeof(check) );
追答
主要是你的sizeof(check)这方法好像不认识,我尝试过import,但是好像没用。在java中我还没找到对应的方法,对不起,爱莫能助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询