精通c++想着自学java,可是一上手就是各种疑难杂症
#include<iostream>
#include<cmath>
using namespace std;
int i;
char ch;
int a[400000];
int n,t,p;
int main()
{
i=1;
while(cin>>ch)
a[i++]=ch;
n=sqrt(i-1);
cout<<n<<" ";
p=1;
if(a[p]!='0')
cout<<0<<" ";
while(p<=n*n)
{
if(a[p]==a[p+1])
{
t++;
p++;
}
else
{
cout<<t+1<<" ";
t=0;
p++;
}
}
return 0;
}
这是通过的c++原程序,我把它翻译成了java,变成了这样:
import java.util.Scanner;
public class P1320{
static int i=0,n=0,t=0,p=0,ch;
static int[] a=new int [400000];
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(in.hasNext()){
ch=in.nextInt();
a[++i]=ch;
}
n=(int)Math.sqrt(i);
System.out.print(n+" ");
if(a[1]!='0'){
System.out.print("0 ");
}else{
System.out.print(" ");
}
p=1;
while(p<=n*n){
if(a[p]==a[p+1]){
t++;
p++;
}else{
System.out.print(t+1+" ");
t=0;
p++;
}
}
in.close();
}
}
如你所见,while输入始终无法完成,无论是按ctrl+z还是按ctrl+d都无法完成输入,交上去是RE和WA的混合版,求大佬赐教!!