
正文
java代码oj运行错误 java运行出现jni错误
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
南阳理工OJ第一题A+B problem 用java编程在eclipse上能运行正确,为什么在OJ上提交时总是CompileError!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a = cin.nextInt(), b = cin.nextInt();
System.out.println(a + b);
}
}
用这个试试
相关问答
Q1: 北大OJ的1012题java做出莫名奇妙的runtime error
这样java代码oj运行错误的检测没有进行有效地检测
当m = 5 以后java代码oj运行错误,计算量比较大,时间就太长。。
#include stdio.h
void POJ1012();
//int result[]={0,2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881};
int main()
{
POJ1012();
return 0;
}
void POJ1012()
{
int i,k;
int result[14]={0};
scanf("%d",k);
while(k!=0)
{
// printf("%d\n",result[k]);
int leftguys,m,flag,cur,next;
i=1;
while(true)
{
if(result[k]!=0)
{
printf("%d\n",result[k]);
break;
}
//m为移动java代码oj运行错误的个数,cur为移动前索引,以0为起点
//m只能为k+1的整数倍或者是k+1的整数倍加1,
//因为只剩下K+1个人时,cur索引必位于k或k+1上
m=(k+1)*i;
for(int j=0;j2;j++)
{
cur=-1;
flag=true;
for(leftguys=2*k;leftguysk;--leftguys)
{
next = (cur+m)%leftguys;
if(nextk)
{
flag=false;
break;
}
cur = next-1;
}
if(flag)
{
printf("%d\n",m);
result[k]=m;
break;
}
m=(k+1)*i+1;
}
if(flag)
break;
++i;
}
scanf("%d",k);
}
}
Q2: 为什么java oj老是wrong answer?
你的写法里一个方法输入六个参数,这种方法很难读的,而且变量名没有体现可读性,你说abcdef到底啥意思?一个方法参数过多可以直接拆分为多个方法,再方法套用就可以了;max方法其实一句话a=ab?a:b;可以实现了,不需要再搞出来方法
个人建议你新建一个类,把点的三个数据封装为一个坐标对象point(x,y,z),然后利用数组把你的输入数据封装到数组point p[]里,这样一维数组就足够用了,不需要二维。然后再设计几个成员方法,第一个是计算两个任意点对象的距离以求出边长,第二个是利用海伦公式三边长可以直接求面积设计方法来得到面积值,然后再用三个for循环内嵌,相当于定二移一,逻辑记录最大值输出即可
你看我写的代码,是不是比较容易看得懂什么意思?当然没有加入合法性检验,这个你自己肯定会写我就不写了
package com.at.java;
import java.util.Scanner;
public class JustTest {
public static void main(String args[]) {
int i=0,j=0,k=0;double maxArea=0;int num=0;
String s=new String(" ");
String str[]=new String[3];
System.out.println("请输入点个数:");
Scanner sc1=new Scanner(System.in);
num=sc1.nextInt();
sc1.nextLine(); /*必须加一行以过滤上面的回车键否则报错**/
Point p[]=new Point[num];
for(i=0;inum;i++)
{
p[i]=new Point(0,0,0);
}/*对象数组成员必须初始化,否则报错空指针**/
System.out.println("请输入三个数据代表x,y,z,之间以空格间隔,以回车结束:");
for(i=0;inum;i++)
{
s=sc1.nextLine();/*按照图像要求,必须使用nextLine方法接受字符串,因为nextInt方法不可能得到图示的输入结果**/
str=s.split(" ",3);/*以空格为拆解符,拆解为3个储存数字的字符串**/
p[i].x=Double.parseDouble(str[0]);
p[i].y=Double.parseDouble(str[1]);
p[i].z=Double.parseDouble(str[2]);
}
for(i=0;inum;i++)
{
for(j=i+1;jnum;j++)
{
for(k=j+1;knum;k++)
{
maxArea=maxAreap[i].areA(p[i], p[j], p[k])?maxArea:(p[i].areA(p[i], p[j], p[k]));
}/*for循环嵌套计算面积并比较大小**/
}
}
sc1.close();
System.out.printf("最大面积为"+"%.2f",maxArea);
}
}
class Point{
double x,y,z;
Point(double x,double y,double z)
{
this.x=x;
this.y=y;
this.z=z;
}
double disTance(Point a,Point b)/*两点边长方法**/
{
return Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
}
double areA(Point a,Point b,Point c)/*海伦公式三点面积方法**/
{
double al=a.disTance(a, b);double bl=b.disTance(b, c);double cl=c.disTance(a, c);
double p=(al+bl+cl)/2;
return Math.sqrt(p*(p-al)*(p-bl)*(p-cl));
}
}
Q3: (OJ)JAVA这段代码总是runtime error。。。
我试了下java代码oj运行错误你的代码java代码oj运行错误,没什么问题java代码oj运行错误,就是类名和主函数相同了java代码oj运行错误,主函数那块有警告但不是错误,是可以正常运行的
Q4: OJ一直报我错误,用java老是超时,用C++不会,求问各位大神有没有什么好的方法(java代码修改方面)?
Java中的Scanner运行特别慢,建议使用BufferedReader与StringTokenizer来代替Scanner,速度会提高很多,用Java刷OJ超时是很正常的,速度真的是太慢了
关于java代码oj运行错误和java运行出现jni错误的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








