質問するログイン新規登録

質問編集履歴

3

サンプルコードの修正

2018/04/11 02:21

投稿

yuki8
yuki8

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,6 @@
1
- 先ほどのコードはこちらの思い違いだったのでこちらのエラーについて質問させていただきます。
1
+ 先ほどのコードはこちらの思い違いだったので(通常通り動くのに間違った結果を記載しておりました。)こちらのエラーについて質問させていただきます。
2
2
 
3
3
  ```ここに言語を入力
4
- // 標準入力から2次元配列
5
4
  import java.util.*;
6
5
  import java.util.Scanner;
7
6
  import java.math.BigDecimal;

2

原因究明ができなかったのでコードを貼らせていただきました。

2018/04/11 02:21

投稿

yuki8
yuki8

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- javaで入力された文字列に該当文字が含まれていれば結果を出力するプログラムの際に出るエラー
1
+ javaで入力された文字列に該当文字が含まれていれば結果を出力するプログラムの際に出る警告
body CHANGED
@@ -1,8 +1,77 @@
1
1
  先ほどのコードはこちらの思い違いだったのでこちらのエラーについて質問させていただきます。
2
2
 
3
+ ```ここに言語を入力
4
+ // 標準入力から2次元配列
3
- コードは著作権の関係で晴れませんが、
5
+ import java.util.*;
6
+ import java.util.Scanner;
7
+ import java.math.BigDecimal;
4
8
 
9
+ public class Main {
10
+ public static void main(String[] args) {
11
+
12
+ Scanner sc = new Scanner(System.in);
13
+
14
+ //入力個数
15
+ String line1 = sc.nextLine();
16
+ int n = Integer.parseInt(line1);
17
+
18
+ //初期値
19
+ Double [] ipaper;
20
+ ipaper = new Double[2];
21
+ String [] paper;
22
+ paper = new String[2];
23
+ int answer = 0;
24
+ BigDecimal sum;
25
+
26
+ sum = BigDecimal.ZERO;
27
+ // valueOfメソッドを使用して初期化
28
+ sum = BigDecimal.valueOf(0.0);
29
+
30
+ // コンストラクタで初期化
31
+ sum = new BigDecimal(0.0);
32
+
33
+ //入力個数まで
34
+ for(int i = 0; i < n; i++){
35
+ String line2 = sc.nextLine();
36
+ paper = line2.split(" ");
37
+
38
+ for(int j = 0; j < 2; j++) {
39
+
40
+ ipaper [j] = Double.parseDouble(paper[j]);
41
+ }
42
+
43
+ //初期化
44
+ int result = 0;
45
+ double zyosu = 0.01;
46
+
47
+
48
+ //3のつく場合
49
+ result = paper[0].indexOf("3");
50
+ if (result != -1) {
51
+ zyosu = 0.03;
52
+ }
53
+ //5のつく場合
54
+ result = paper[0].indexOf("5");
55
+ if (result != -1) {
56
+ zyosu = 0.05;
57
+ }
58
+ //System.out.println(result);
59
+ BigDecimal rate = new BigDecimal(zyosu);
60
+ BigDecimal unit = new BigDecimal(ipaper[1]);
61
+ //System.out.println(rate);
62
+ unit = unit.multiply(rate);
63
+
64
+ sum = sum.add(unit);
65
+
66
+ sum = sum.setScale(0, BigDecimal.ROUND_DOWN);
67
+ }
68
+ System.out.println(sum);
69
+ }
70
+ }
71
+ ```
72
+
73
+ こちらの実行時に
5
- こちらのエラーが出る場合の考えうる原因を教えていただけいでしょうか?
74
+ こちらの警告が出る場合の該当クラスが1つずつ実行してみてもわかりません。原因の部分を教えていただけると幸いです。
6
75
  Note: Main.java uses or overrides a deprecated API.
7
76
  Note: Recompile with -Xlint:deprecation for details.
8
77
 

1

コードに関してはこちらの勘違いでしたのでこちらのエラーについて質問させていただきます。

2018/04/11 01:48

投稿

yuki8
yuki8

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- javaで入力された文字列に該当文字が含まれていれば結果を出力するプログラムが動きません。
1
+ javaで入力された文字列に該当文字が含まれていれば結果を出力するプログラムの際に出るエラー文
body CHANGED
@@ -1,46 +1,8 @@
1
- 思い通りにの動作をしないので質問させていただきます。
1
+ 先ほどのコードはこちらの思いだったのでこちらのエラーについて質問させていただきます。
2
2
 
3
- プログラムをの正常に動しない部分を抜き出しした。
3
+ コードは著権の関係で晴れせんが、
4
4
 
5
-
6
- ```lang-java
7
- import java.util.*;
8
- import java.util.Scanner;
9
- public class Main {
10
- public static void main(String[] args) {
11
-
12
- Scanner sc = new Scanner(System.in);
13
-
14
- //入力個数
15
- String line = sc.nextLine();
16
-
17
-
18
- //初期化
19
- int hantei = 0;
20
-
21
- //3のつく日なら
22
- hantei = line.indexOf("3");
23
- if (hantei != -1) {
24
- System.out.println("3が該当しています");
25
- }
26
- //5のつく日なら こちらだけ反映
27
- hantei = line.indexOf("5");
28
- if (hantei != -1) {
29
- System.out.println("5が該当しています");
30
- } else {
31
- System.out.println("該当なし");
5
+ こちらのエラーが出る場合の考えうる原因を教えていただけいでょうか?
32
- }
33
- }
34
- }
35
- ```
36
-
37
- このような入力した値が 3か5を含んでいれば該当すると表示しなければ該当なしというプログラムを
38
- 書いているのですが、なぜか
39
- 3や5を入力しても該当無しとなったり逆に5だけ該当していますと出てしまい正常な動作をしません。
40
- 3の時も該当なしと出るのは無視してます。
41
-
42
- それとここのプログラム部分だけでは警告は出ないのですが以下のような警告が出てしまうのですが考えられる原因というのは何がありますでしょうか?
43
-
44
6
  Note: Main.java uses or overrides a deprecated API.
45
7
  Note: Recompile with -Xlint:deprecation for details.
46
8