LoginSignup
2
1

More than 1 year has passed since last update.

C#でAtCoder入門 #01入出力

Posted at

C#初心者がAtCoderを始める際に最低限必要な入出力を紹介する記事です。

特にC#であることにこだわりがない人はC++を使うことをお勧めします。使用人数がとても多いですし、AtCoder以外の多くのオンラインジャッジでも使用可能です。

出力処理

文字列(string)

サンプルコード
string A = "AtCoder";
Console.WriteLine(A);
出力
AtCoder

整数(int)

サンプルコード
int A = 123;
Console.WriteLine(A);
出力
123

浮動小数点数(float)

サンプルコード
float A = 0.123f;
Console.WriteLine(A);
出力
0.123

1次元配列

サンプルコード
int[] A = {1,2,3};
Console.WriteLine(string.Join("", A)); // 区切りなし
Console.WriteLine(string.Join(",", A)); // コンマ区切り
Console.WriteLine(string.Join(" ", A)); // スペース区切り
Console.WriteLine(string.Join("\r\n", A)); // 改行区切り
出力
123
1,2,3
1 2 3
1
2
3

2次元配列

サンプルコード
int[,] A = new string[2, 3] {{1,2,3},{4,5,6}};
Console.WriteLine(string.Join(",", A.Cast<int>()));
出力
1,2,3,4,5,6

入力処理

1行 / 1列

文字列(string)

入力
AtCoder
サンプルコード
string A = Console.ReadLine();
Console.WriteLine(A);
出力
AtCoder

整数(int)

入力
123
サンプルコード
int A = int.Parse(Console.ReadLine());
Console.WriteLine(A);
出力
123

浮動小数点数(float)

入力
0.123
サンプルコード
float A = float.Parse(Console.ReadLine());
Console.WriteLine(A);
出力
10

文字配列(char[])

入力
AtCoder
サンプルコード
char[] A = Console.ReadLine().ToCharArray();
Console.WriteLine(string.Join(",", A));
出力
A,t,C,o,d,e,r

1行 / 複数列

文字列配列(string[])

入力
I love AtCoder
サンプルコード
string[] A = Console.ReadLine().Split(' ');
Console.WriteLine(string.Join(",", A));
出力
I,love,AtCoder

整数配列(int[])

入力
10 20 30
サンプルコード
int[] A = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
Console.WriteLine(string.Join(",", A));
出力
10,20,30

浮動小数点数(float[])

入力
0.1 0.2 0.3
サンプルコード
float[] A = Console.ReadLine().Split(' ').Select(float.Parse).ToArray();
Console.WriteLine(string.Join(",", A));
出力
0.1,0.2,0.3

複数行 / 1列

最初の行に行数Nがある場合、N回値を読み込み、大きさNの配列に値を格納します。

入力
3
I
love
AtCoder
サンプルコード
int n = int.Parse(Console.ReadLine());
var A = new string[n];
for (int i = 0; i < n; i++) {
    A[i] = Console.ReadLine();
}
Console.WriteLine(string.Join(",", A));
出力
I,love,AtCoder

行数が分からない場合、最後の行に到達するまで(Console.ReadLine()がnullになるまで)値を読み込み、リストに値を格納します。

入力
I
love
AtCoder
サンプルコード
var A = new List<string>();
while (true) {
    string line = Console.ReadLine();
    if (line == null) break;
    A.Add(line);
}
Console.WriteLine(string.Join(",", A));
出力
I,love,AtCoder

複数行 / 複数列

最初の行に行数Nおよび列数Mがある場合、N回値を読み込み、大きさN×Mの配列に値を格納します。

入力
3 4
1 2 3 4
5 6 7 8
9 10 11 12
サンプルコード
int[] nm = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int n = nm[0];
int m = nm[1];
var A = new int[n][];
for (int i = 0; i < n; i++) {
    A[i] = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
}
foreach (var a in A) {
  	Console.WriteLine(string.Join(",", a));
}
出力
1,2,3,4
5,6,7,8
9,10,11,12

行数および列数が分からない場合、最後の行に到達するまで(Console.ReadLine()がnullになるまで)値を読み込み、リストに値を格納します。

入力
1 2 3 4
5 6 7 8
9 10 11 12
サンプルコード
var A = new List<List<int>>();
while (true) {
    string line = Console.ReadLine();
	if (line == null) break;
    A.Add(line.Split(' ').Select(int.Parse).ToList());
}
foreach (var a in A) {
  	Console.WriteLine(string.Join(",", a));
}
出力
1,2,3,4
5,6,7,8
9,10,11,12

参考リンク

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1