私は数時間でこのJavaプログラムのトラブルシューティングを試みてきており、何が問題なのかを見つけることができませんでした。私はメインクラスが正しく定義されていないと思います。なぜプログラムに出力が表示されないのですか?
コンパイルは成功しましたが、出力は空白ですが正しくはないはずですか?私はintiallyオブジェクトを使用してメインクラスを呼び出してみましたが、まだ運がありません。任意の提案が動作します。
元のプログラム:メインメソッドの追加時に正常にコンパイルされますが、出力は空白です。
import java.lang.Math; // headers MUST be above the first class
// one class needs to have a main() method
public class OrdSetSimple
{
// arguments are passed using the text field below this editor
public static void main(String[] args){
OrdSetSimple obj = new OrdSetSimple(10);
System.out.print("Success");
}
private int _set_size;
private int _set[];
private int _last;
public OrdSetSimple(int size) {
int k;
_set_size=size;
_set = new int[_set_size];
for(k=0; k<_set_size; k++)
_set[k]=0;
_last=-1;
}
private int make_a_free_slot(int val) {
int pos, i, j;
pos = binSearch(val);
if (pos >= 0)
return -1;
for (i=0; i<=_last; i++) {
if (_set[i] > val)
break;
}
if ((i<=_last)||(_last==-1)) {
for (j=_last; j>=i; j--)
_set[j+1] = _set[j];
pos = i;
} else {
pos = _last+1;
}
_last++;
return pos;
}
public void addElement(int n) {
int pos;
if (n<0) {
System.out.println("Addition of a negative integer impossible\n");
return;
}
if (_last+1>=_set_size) {
System.out.print("Addition of " + n);
System.out.println(" impossible since the array is already full");
System.out.println("The array is: " + toString());
} else {
pos = make_a_free_slot(n);
if (pos>=0)
_set[pos]=n;
}
return;
}
public int getSize() {
return _last+1;
}
public int getElementAt(int i) {
if ((i<0)||(i>_last))
return -1;
else
return _set[i];
}
private int binSearch(int x) {
int i=0;
int j=_last-1;
int m=0;
if (_last==-1)
return -1;
while(i<j) {
m= (i+j)/2;
if (x>_set[m])
i=m+1;
else
j=m;
}
if (x == _set[i]) return i;
else return -1;
}
public OrdSetSimple difference(OrdSetSimple s2) {
OrdSetSimple s1 = this;
int size1=s1.getSize();
int size2=s2.getSize();
OrdSetSimple set=new OrdSetSimple(size2);
int k;
for(k=0; k<size1; k++)
if (s2.binSearch(s1.getElementAt(k)) < 0)
set.addElement(s1.getElementAt(k));
return set;
}
public String toString() {
int k = 0;
String s="";
for (k=0; k<=_last; k++)
s += _set[k] + " ";
return s;
}
}
のようにそれを修正して、これはあなたの実際のコードですか?これは 'System.out.print("何でも ");'でなければならないからです。 – AntonH
は、OrdSetSimpleクラスのmainメソッドのエントリーポイントを持つプロジェクトをコンパイルしているようです...そのメソッドは空で、アプリケーションは実行中で何もせずに、エラーやmsgも表示されずに存在しています.... –
"メインクラス "を参照していますか?あなたが投稿した唯一のクラスは 'OrdSetSimple'で、その主な*メソッド*は空です(したがって何も印刷しません)。あなたが掲示した他の主な方法はどのクラスに属していますか? – azurefrog