【解決方法】この問題のどこが間違っていますか?


サイズ N の整数配列 Arr と数値 X. 配列内の指定された X のすべてのインデックスを出力し、それ以外の場合は -1 を出力します。

1 から始まるインデックスで出力します。

入力

5 6
2 6 3 6 6
出力:

2 4 5

私が試したこと:

solution

int flag =0;
		int index =-1;
    for(int i=0; i<N; i++){
			if(arr[i]==X){
				flag =1;
				index = i+1;
			
			if(flag==1){
			 System.out.print(index + " ");
				
			}
			else{
				System.out.print("-1");
			   
			}
				}

解決策 1

フラグのステータスをクリアすることはありません。一度設定すると、アプリケーションの実行中は設定されたままになります…印刷はすべてループ内にあるため、これは重要なことではないでしょうか?

デバッガーを使用していれば、数分でコードのどこが間違っているかがわかります。ここで質問するよりもはるかに迅速です。
使用方法はコンパイラ システムによって異なりますが、IDE と「デバッガ」の名前を Google で検索すると、必要な情報が得られます。 関数の最初の行にブレークポイントを置き、デバッガーでコードを実行します。 次に、コードとデータを見て、何が起こるべきかを手動で解決します。 次に、各行を 1 ステップ実行して、予想どおりの動作を確認します。 そうでない場合は、問題が発生したときであり、後戻りして (またはもう一度実行して詳しく調べて) 原因を突き止めることができます。

コメント

タイトルとURLをコピーしました