壁打ちAtCoder

AtCoderの問題をひたすら解いてくブログです。思考やコードの書き方の私的備忘録として

各言語での入出力まとめ

いろいろ使ってるとどれがどれだかわからなくなったりするので備忘録。
随時加筆修正予定。

C

//入力
scanf("%d", &a);
//出力
printf("%d\n", a);

C言語は非常にめんどくさいですが入出力時に型ごとのフォーマット指定子が必要です。
www.k-cube.co.jp

また入力時に数値や文字であれば&を付け、文字列であれば付けません。
(その理由はポインタ絡みなのですが、もし気が向けばちゃんと書きます)

横に沢山入力して受け取りたい時はscanf内で横に並べます。

scanf("%d %d %d", &a, &b,&c);

50 100 150と入力するとa=50,b=100,c=150が入ります。

文字列の入出力について
char s[5];
scanf("%s", s);
//s="aeiou"
printf("%c\n", s[0]); //a
printf("%c\n", s[1]); //e
printf("%c\n", s[2]); //i
printf("%c\n", s[3]); //o
printf("%c\n", s[4]); //u

文字列は配列に入れると添え字で文字の指定ができます。

入出力とは話がずれますが、プログラム中で文字を扱う場合に、文字列であれば" "を、文字であれば' 'を使う点も注意。

二次元配列の入出力
char s[2][5];
for(int i=0;i<2;i++){
        scanf("%s", s[i]);
}
//s1="abcde", s2 ="hijkl"

printf("%c\n", s[0][2]); //c
printf("%c\n", s[1][4]); //l

C++

//入力
cin >> a;
//出力
cout << a << endl;

<<の向きに注意。
endlで改行。改行しない場合には付けません。

こちらも横に受け取りたい場合にはどんどん横に伸ばしていきます。

//入力
cin >> a >> b >> c;

C#

//入力
Console.ReadLine();
//出力
Console.WriteLine();

Python

//入力
input()
//出力
print()

横に入力する場合にはmapを使います。

a,b,c=(int, input().split())

出力時に改行しない方法についてはこちらに色々載っています。
teratail.com

JavaScript

おまけ。最近触ってないのと他の言語で勝手が違うのでこれでいいかはちょっとわかんない(違ってたらごめんなさい)

//入力
document.getElementById('');
//出力
Console.log();