質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

2518閲覧

JavaのコードでEclipse上ではコンパイルエラーは起こらないが他サイトで起こるエラーについて

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2018/02/07 02:06

前提・実現したいこと

以下のAtCoder Beginner Contest 087のA問題を解いています。
AtCoderのページ

問題文
あなたは、X 円を持ってケーキとドーナツを買いに出かけました。

あなたはまずケーキ屋で 1 個 A 円のケーキを 1 個買いました。 次に、ドーナツ屋で 1 個 B 円のドーナツをできるだけたくさん買いました。

これらの買い物のあと手元に残っている金額は何円ですか。

制約
1≤A,B≤1,000
A+B≤X≤10,000
X,A,B は整数である

入力
入力は以下の形式で標準入力から与えられる。

X
A
B

出力
買い物のあとに残った金額を出力せよ。

発生している問題・エラーメッセージ

Eclipse上では正常に動くのですが、AtCoder上でコンパイルすると以下のエラーが出ます。
コンパイルエラーの原因がわからず困っています。

./Main.java:3: error: class contest87 is public, should be declared in a file named contest87.java public class contest87 { ^ 1 error

該当のソースコード

Java

1package atcoder; 2import java.util.Scanner; 3 4public class contest87 { 5 6 public static void main(String[] args) { 7 Scanner sc = new Scanner(System.in); 8 // total money 9 int X = sc.nextInt(); 10 // price of cake 11 int A = sc.nextInt(); 12 // price of daunts 13 int B = sc.nextInt(); 14 15 int rmaftercake = X - A; 16 int daunutsnum = rmaftercake / B; 17 int rmafterdanuts = rmaftercake - B * daunutsnum; 18 System.out.println(rmafterdanuts); 19 20 } 21 22} 23

補足情報(FW/ツールのバージョンなど)

Eclipse Java EE IDE for Web Developers.

Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

javaではpublicなクラスの場合、ファイル名とクラス名を一致させる必要があります。
このサイトを含む多くの競技プログラミング環境では、クラス名を「Main」にしないとこれに違反してしまいます。

クラス名をcontest87からMainにしましょう。

https://beta.atcoder.jp/contests/abc086/faq?lang=ja

投稿2018/02/07 02:17

YamakawaJunichi

総合スコア630

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/07 02:45

ご回答頂きましてありがとうございました。
guest

0

ベストアンサー

オンラインコンパイラの場合、publicなクラス名はMainなど決められた名前でないとエラーになることがあります。おそらく入力されるコードのクラス名があらかじめサイト側で決められているのでしょう。
エラー文の冒頭に./Main.java:3とあるので、おそらくMainでしょう。
コードのテンプレートが出るようなサイトの場合、そのクラス名を変えずimport文とクラスの中身だけ張り付けるか、クラス名を覚えておいて全部貼り付け、あとからクラス名だけ書き換えるなどする必要があります。

投稿2018/02/07 02:15

swordone

総合スコア20649

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/07 02:45

ご回答頂きましてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問