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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

4回答

1143閲覧

AtCoderにてREが出てしまい原因が分からず困っております

pontarou

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/03/04 16:22

編集2019/03/07 21:35

現在、AtCoderにてhttps://atcoder.jp/contests/abc118/tasks/abc118_aの問題を解いておりますが、REが出てしまい原因が分からず困っております。VS,テストでデバッグしてもちゃんと動いたことは確認しました。どなたかアドバイスをよろしくお願いします。
言語はC#です。

using System;

class Program
{
public static void Main(string[] args)
{
int A, B, C = 0;
Console.WriteLine("Aの値を入力してください");
A = int.Parse(Console.ReadLine());
Console.WriteLine("Bの値を入力してください");
B = int.Parse(Console.ReadLine());

if (1 <= A && A <= 20 && 1 <= B && B <= 20) { if (A <= B) { if (B % A == 0) { C = A + B; } else { C = B - A; } } Console.WriteLine("答えは" + C + "です"); } else { Console.WriteLine("入力対象外です"); } }

}

※追記です
まず前提が間違えていました。
1 1
という入力方式でいれなければならないのですが、
1
1
という入力方式でいれようとしていました。
自分でもう少しやってみます。

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

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

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

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

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

guest

回答4

0

意外でしたがatcoderってオンラインジャッジ入門みたいな解説はしてないんですね・・・
まず、機械判定なので、出力する文字はバイナリレベルで一致させる必要があります。

そして、入力も入力例のように入力されます。

つまり、今回は

4 12

と、空白区切りかつ1行で与えられます。

投稿2019/03/05 00:33

編集2019/03/05 00:34
asm

総合スコア15147

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

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

pontarou

2019/03/05 03:33

回答ありがとうございます。
guest

0

REになっている理由は、aに代入するint.Parseが"1 1"をパースしようとして不正な文字列で落ちたからだと思います。

csharp

1var inputs = Console.ReadLine().Split().Select(i=> int.Parse(i)); 2var a = inputs[0];

みたいな取り方をすれば取れます。既に指摘がなされていますが、条件がおかしいのでWAになると思います。

投稿2019/03/05 00:36

papinianus

総合スコア12705

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

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

pontarou

2019/03/05 03:34

回答ありがとうございます。
pontarou

2019/03/07 21:28

ありがとうございます。
pontarou

2019/03/07 21:29

実行したところ下記エラーが出ました。 Unhandled Exception: System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) [0x0005e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Number.ParseInt32 (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Int32.Parse (System.String s) [0x00007] in <8f2c484307284b51944a1a13a14c0266>:0 at Program.Main (System.String[] args) [0x00007] in <33db1e9d5cca4be0b27f52257db1d2d2>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles options, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) [0x...
guest

0

自己解決

int A, B, C = 0;
Console.WriteLine("Aの値を入力してください");
A = int.Parse(Console.ReadLine());
Console.WriteLine("Bの値を入力してください");
B = int.Parse(Console.ReadLine());

int C = 0;
//A = int.Parse(Console.ReadLine());
//B = int.Parse(Console.ReadLine());

var param = System.Console.ReadLine().Split(' ').Select((x) => int.Parse(x)).ToList();

int A = param[0];
int B = param[1];

に変えて試したところうまくいきました。ありがとうございました。

投稿2019/03/07 21:56

pontarou

総合スコア8

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

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

0

出力例の通りに出力してください。

投稿2019/03/04 23:48

編集2019/03/04 23:53
Zuishin

総合スコア28660

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

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

Zuishin

2019/03/04 23:49

あとプロンプトも出力とみなされます。
Zuishin

2019/03/04 23:55

それと勝手な条件を入れているのでエラーにならなくてもどのみち不正解です。
pontarou

2019/03/05 03:32

回答ありがとうございます。 勝手な条件とは、どのことをおっしゃっているのですか?
Zuishin

2019/03/05 03:36

必要な条件は一つですが、条件式が三つ書いてあります。
pontarou

2019/03/05 03:41

あの条件を2行で表したのですが1行でやらないとダメだったのですね
Zuishin

2019/03/05 03:49

ああ、制約条件だったんですね。なら入れていても構いません。入れていてもいなくても変わらないので無意味ですが。 コードがコードブロックに入っていないので読みにくかったのと、余計な出力が目についたので、私の読み方が雑になっていたようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問